2011-03-10 23 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

相关问题