我在尝试使用$(document).ready()时出错,如上图所示。 我应该尝试解决这个问题?
编辑23/05/2011 10:54
我有一个线索。 我正在使用的页面继承自母版页
在母版页中,此代码不起作用,可能是不同路径的问题
<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,并且这是错误的。
解决这个问题的最简单方法是,我必须在body标签的底部移动javascript代码。 正确的解决方法,我仍然无法找到将javascript包含在头文件中的代码。但我找不到一种方法可行。我的母版页和继承页面位于不同的路径上。我发现了许多技术,但没有一种技术有效。
答案 0 :(得分:3)
取出除jquery-1.5.1.min.js之外的所有其他javascript包含。尝试只使用那个包含。如果可行,请将其他包含一次添加回一个,直到出现错误。如果它只与包含的jQuery脚本不兼容,那么很可能它没有指向正确的路径。
简短的回答,是的,你可以在ASP.NET页面中使用jQuery和document.ready。
答案 1 :(得分:1)
当然可以。似乎jQuery对象在脚本执行时不可用。验证是否确实通过脚本指令加载了jquery库文件。或许这背后还有其他一些细微差别。