2011-03-10 56 views
2

我在頁面uc1和uc2中有兩個用戶控件。當文檔準備就緒時,我想確保這兩個用戶控件中的js函數觸發。在同一頁面中使用兩個用戶控件中的jquery

當我使用'$(document).ready({function(){// something});'在用戶控件中只有第一個用戶控件的功能正在加載。沒有調用第二個用戶控件的功能。

我不能在同一頁面的兩個不同的用戶控件中使用'(document).ready'嗎? 如果不是那麼我怎麼才能確保相應的方法只有在文檔準備好時才被調用?

+0

你的IE瀏覽器應該檢測到一個javascript錯誤。可能,你命名了一個函數兩次。 – 2011-03-10 05:37:59

回答

2

您可以添加任何數量的功能$(document).ready,他們should all execute

也許第二個腳本在它可以做它應該做的事情之前給出一個錯誤?考慮安裝FireBug並在FireFox中打開您的網站。

+0

當我刪除第一個用戶控件。第二個用戶控件中的函數被調用。 – sid 2011-03-10 05:45:55

+1

@syd:可能是第一個用戶控件將函數或變量添加到與第二個用戶控件衝突的全局名稱空間中? – Andomar 2011-03-10 05:59:05

0

,你可以做任何的下方的.ascx文件的

結構

//Demo control 
    Name : <asp:TextBox ID="txtName" /> 

的Javascript

//this is DOM ready 
jQuery(function(){ 
    jQuery('#'+<%=txtName.ClientID%>).doSomething(); 
}); 

或其他方式

<asp:TextBox ID="txtName" CssClass="myClass" /> 

add this code the page that holds these controls 

jQuery(function(){ 
    jQuery('.myClass').DOSomeThing(); 
}); 
0

我的第一個賭注會去檢查的功能,即具有相同名稱的變量重複namings。我還想知道我是否可以將功能添加到主頁面(或者新的,如果它的指定)。這將簡化錯誤跟蹤。我也推薦用於js調試的firebug和httpdwatch。現在您的示例給出了一個小的提示,即document.ready是您在每個用戶控件中使用的唯一方法調用?

+0

我也會說,不要將jquery.js鏈接到每個用戶控件中! – Independent 2011-03-10 06:18:56

相關問題