在内容页面中,jquery文档就绪事件在加载内容页面之前触发

时间:2010-06-07 09:09:11

标签: jquery master

我有一个引用jquery + jqueryui的母版页。一切都好。 在我放置的内容页面中:

  $(document).ready(function () {
        $("#tabs").tabs();
    });

事实证明,在加载内容页面的html之前,就会触发就绪事件:/。 那么,如何确定加载整个内容页面的时间?

编辑这是我的标记:

母版页:

<form runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
  <Scripts>
    <asp:ScriptReference Path="~/Scripts/jquery-1.4.1-vsdoc.js" />
    <asp:ScriptReference Path="~/Scripts/jquery-ui-1.8.2.custom.min.js" />
  </Scripts>
</asp:ScriptManager>

内容页面:

                                        

<div id="tabs">
    <div id="whatWorkedWellDiv">
        <fieldset>
            <legend>What Worked Well</legend>
            <br />
            <label for="user">
                Name</label>
            <input type="text" name="user" value="" /><br />
            <label for="emailaddress">
                Email Address:</label>
            <input type="text" name="emailaddress" value="" /><br />
            <label for="comments">
                Comments:</label>
            <textarea name="comments"></textarea><br />
            <label for="terms">
                Agree to Terms?</label>
            <input type="checkbox" name="terms" class="boxes" /><br />
            <input type="submit" name="submitbutton" id="submitbutton" value="Submit" />
        </fieldset>
    </div>
    <div id="whatCouldHaveGoneBetterDiv">
        <fieldset>
            <legend>What could have gone better</legend>
            <br />
            <label for="user">
                Name</label>
            <input type="text" name="user" value="" /><br />
            <label for="emailaddress">
                Email Address:</label>
            <input type="text" name="emailaddress" value="" /><br />
            <label for="comments">
                Comments:</label>
            <textarea name="comments"></textarea><br />
            <label for="terms">
                Agree to Terms?</label>
            <input type="checkbox" name="terms" class="boxes" /><br />
            <input type="submit" name="submitbutton" id="submit1" value="Submit" />
        </fieldset>
    </div>
</div>

的Jscript:

             $(document).ready(function(){               $( “#标签”)选项卡()。           });       

3 个答案:

答案 0 :(得分:1)

如果您使用frames/iframes,这可能是可能的,因为.ready()处理程序会触发实际执行它的DOM。

如果您“加载”网站的某些部分asyncronous,则可能会发生这种情况。

无论如何,如果您的网站中有不同的DOM,则需要在所有网站中使用单独的.ready()处理程序。

如果您没有任何这些安排,请提供您的HTML标记。

答案 1 :(得分:1)

我通过移动

来完成这项工作
<script type="text/JavaScript" src="Scripts/DocumentReadyScript.js"></script> 

来自

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">

部分到

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">

部分

答案 2 :(得分:0)

在您的主页中尝试以下内容

<script language="javascript" type="text/javascript" src='<%=ResolveClientUrl("~/Scripts/jquery-1.4.2.min.js")%>'></script>