我在尝试使用 $(document).ready() 时出错,如上图所示。我应该怎么解决这个问题?
编辑 23/05/2011 10:54
我有一个线索。我正在工作的页面继承自 masterpage
在母版页中,此代码不起作用,可能是路径不同的问题
<head id="Head1" runat="server">
<title>Back Office</title>
<link href="~/Styles/MasterPage.css" rel="stylesheet" type="text/css" />
<link href="Styles/custom-theme/jquery-ui-1.8.12.custom.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="scripts/jquery-1.5.1.min.js"></script>
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>
此代码似乎不起作用
在母版页的主体上,有一个脚本管理器和jquery,这使得jQuery可以工作,是因为我们在body中使用了scriptmanager,所以document.ready不起作用?
<asp:ScriptManager ID="ScriptManager1" runat="server" OnAsyncPostBackError="ScriptManager1_AsyncPostBackError">
<Scripts>
<asp:ScriptReference Path="~/Scripts/jquery-1.5.1.min.js" />
</Scripts>
</asp:ScriptManager>
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder>
我发现了问题。
问题是 jquery 代码在母版页上,在脚本管理器中,而脚本管理器在 body 标记内。
document.ready 位于母版页上继承的页面上的标题标记上,因此在执行到正文的代码之前,jquery 尚未包含在内,这是错误的。
解决这个问题的最简单方法是,我必须将 javascript 代码移动到 body 标记的底部。我仍然找不到的正确解决方法是将javascript包含代码放在标题中。但我还没有找到可行的方法。我的母版页和继承页位于不同的路径上。我发现了很多技术,例如,但没有一个有效。