0

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

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

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

编辑这是我的标记:

母版页:

<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>

脚本:

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

3 回答 3

1

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

另一种可能发生这种情况的方式是,如果您“后加载”您网站的某些部分asyncronous

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

如果您没有任何这些星座,请提供您的 html 标记。

于 2010-06-07T09:14:50.297 回答
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">

部分

于 2014-03-16T20:46:41.273 回答
0

在您的 MasterPage 中尝试以下操作

<script language="javascript" type="text/javascript" src='<%=ResolveClientUrl("~/Scripts/jquery-1.4.2.min.js")%>'></script> 
于 2010-08-04T09:09:48.863 回答