document.ready有时候不会执行

时间:2017-11-02 20:59:11

标签: javascript jquery asp.net dom

我遇到过一种情况,偶尔看起来$(文件).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>&nbsp;</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>&nbsp;</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()函数。为什么?我该如何解决?

提前致谢。\, 达尔文

1 个答案:

答案 0 :(得分:1)

在ASP.NET Web窗体中,我们通常使用pageLoad,如果我们需要在使用ASP.NET Ajax时找到控件,例如UpdatePanel

但是,我不能肯定地说它可以解决你的问题,但你至少可以尝试一下。

<script type="text/javascript">
   //<![CDATA[     
   function pageLoad() {
      var listBox = $find("<%= SelectedTagRadListBox.ClientID %>");
   }            
   //]]>
</script>