На странице содержимого событие готовности документа jquery срабатывает до загрузки страницы содержимого - PullRequest
0 голосов
/ 07 июня 2010

У меня есть главная страница, которая ссылается на 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:

$ (документ) .ready (function () { $ ( "#") Вкладки Вкладки (). });

Ответы [ 3 ]

1 голос
/ 17 марта 2014

Я получил это с помощью перемещения

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

раздел

1 голос
/ 07 июня 2010

Если вы используете frames/iframes, это может быть возможно, так как обработчик .ready() будет запускаться на том DOM, в котором он фактически выполняется.

Другой способ это может произойти, если вы 'постгрузите'некоторые части вашего сайта asyncronous.

Как бы то ни было, если у вас разные DOM на вашем сайте, вам нужен отдельный обработчик .ready() во всех них.

Если вы неУ вас нет ни одного из этих созвездий, пожалуйста, предоставьте свою HTML-разметку.

0 голосов
/ 04 августа 2010

Попробуйте следующее в вашей MasterPage

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