【发布时间】:2016-03-17 01:50:21
【问题描述】:
我希望有人可以帮助我,因为我无法为我的问题找到可行的解决方案。
我正在使用 C# 在 ASP.NET WebForms 中进行编码。我使用 MasterPage。 在这个 MasterPage 中,我在 ScriptManager 中定义我的脚本。
<asp:ScriptManager ID="smScripts" runat="server">
<Scripts>
<asp:ScriptReference Path="~/Scripts/jquery-2.1.1.min.js" />
<asp:ScriptReference Path="~/Scripts/bootstrap.min.js" />
<asp:ScriptReference Path="~/Scripts/printArea.js" />
<asp:ScriptReference Path="~/Scripts/globalFunctions.js" />
<asp:ScriptReference Path="~/Scripts/jquery.browser.min.js" />
<asp:ScriptReference Path="~/Scripts/jquery.reject.js" />
</Scripts>
</asp:ScriptManager>
现在,如果我在任何页面中使用 jQuery e。 G。 Default.aspx 里面的函数可以正常工作:
<script type="text/javascript">
function Print(options) {
$("div.PrintArea").printArea(options);
}
</script>
但是如果我尝试直接在脚本块中使用它——例如等到文档准备好——它就不起作用:
<script type="text/javascript">
$(document).ready(function () {
// some code
});
</script>
我收到错误“JavaScript 运行时错误:“$”未定义”。 我不知道如何解决这个问题。
也许有人可以帮助我?提前致谢。
【问题讨论】:
-
可能,您的
<script>标签位于之前 jQuery 参考。当你调用一个函数时,jQuery 已经加载并且可以正常工作了。但是当您尝试执行$(document).ready时,它没有加载并引发此错误。我有 95% 的把握。打开生成的 HTML 看看是不是。 jQuery 应该在$(document).ready或任何其他用法之前引用。 -
感谢您的评论。你可能是对的,但是我如何确保在调用任何其他代码之前(在我的 MasterPage 中)始终加载 jQuery?
-
有时,这也发生在我身上。始终是因为使用了 3rd 方 JS,它们之间相互影响。尝试注释所有的 JS,然后一点一点地取消注释。
标签: javascript jquery asp.net webforms master-pages