我遇到过一种情况,偶尔看起来$(文件).ready()似乎没有在页面上触发,这意味着关键事件不会被连线,所以该页面无法正常工作。它大部分时间都在工作,但是它偶尔也没有,我不确定如何修复它,所以我很想吸引这里发现的大量知识。我该怎么做才能确保始终执行文档准备就绪时调用的初始化函数?或者为什么document.ready并不总是被触发。
我在index.aspx页面上实现了一个标签控件:
<script type="text/javascript">
$(document).ready(function () {
$("#tabs").tabs();
});
</script>
这是HTML:
<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="ContentPlaceHolder1">
<div> </div>
<div id="navLinks" style="display: inline-block">
<a href="ImportAssets.aspx">Import Assets</a>
<a href="ImportUsers.aspx">Import Users</a>
</div>
<div>
<div> </div>
<div id="tabs">
<div>
<ul>
<li><a href="Search.aspx">Search</a></li>
<li><a href="Users.aspx">Users</a></li>
<li><a href="Assets.aspx">Assets</a></li>
<li><a href="Organizations.aspx">Organizations</a></li>
</ul>
</div>
</div>
每个aspx页面都有自己的document.ready,例如Users.aspx:
<script type="text/javascript">
$(document).ready(function () {
initializeUsersPage();
});
</script>
我遇到的问题是,偶尔会在从另一个选项卡转换到“用户”选项卡时执行initializeUsersPage()函数。为什么?我该如何解决?
提前致谢。\, 达尔文
答案 0 :(得分:1)
在ASP.NET Web窗体中,我们通常使用pageLoad
,如果我们需要在使用ASP.NET Ajax时找到控件,例如UpdatePanel
。
但是,我不能肯定地说它可以解决你的问题,但你至少可以尝试一下。
<script type="text/javascript">
//<![CDATA[
function pageLoad() {
var listBox = $find("<%= SelectedTagRadListBox.ClientID %>");
}
//]]>
</script>