2010-06-07 113 views
0

我有一个引用jquery + jqueryui的母版页。一切安好。 在内容页面,我把:在内容页面中,jquery文档就绪事件在内容页面加载之前触发

$(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:

$(文件)。就绪(函数(){ $( “#选项卡”)的选项卡(); });

回答

1

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

这种情况发生的另一种方式是,如果您'后装'您的网站的某些部分asyncronous

无论如何,如果你的网站有不同的DOM,你需要一个单独的.ready()处理程序。

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

+0

我用标记更新了我的问题。 我没有做任何动态加载或框架/ iframes ... – 2010-06-07 09:22:37

+0

@Vladimir:你在哪里插入你的JavaScript?你有没有尝试在'.ready()'中做一个简单的'alert()'或者访问一个DOM元素? – jAndy 2010-06-07 09:29:18

+0

javascript被插入到一个单独的文件中。 问题在于当加载母版页时,而不是在内容页被加载时,文档就绪被执行。 – 2010-06-07 09:35:54

0

尝试在你的母版以下

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

我从

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

部分移动

<script type="text/JavaScript" src="Scripts/DocumentReadyScript.js"></script> 

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent"> 
得到了这个工作

部分

相关问题