我有一个嵌套的母版页。父母主页面,子母版页面和母版页是子母版页的内容页面。我在head部分的父母版页中引用了jQuery。<script type="text/javascript" src='<%#ResolveUrl("~/includes/jquery-1.4.2.min.js") %>' ></script>
&amp; Page.Header.DataBind();在OnLoad事件中。
我在包括母版页在内的所有页面中使用jQuery。但是我在内容页面中收到“错误:$()。ready不是函数”。如果我在内容页面中包含jQuery引用它可以工作。
问题:如果对jQuery的引用在主页面部分中,为什么内容页面不能使用jQuery?当我查看源代码时,带有jQuery的脚本标记就在那里,它可以工作。
在母版页和内容页呈现过程中被合并,并发送到浏览器作为一个单一的HTML页面,所以我不知道什么时候使用母版页,jQuery的引用打破。
更新
当我改变“就绪$(函数()”到“jQuery的(文件)。就绪(函数($)”,它的工作!我不加载任何其他JavaScript库,我没有使用MS阿贾克斯。
答案 0 :(得分:0)
首先,我之前没有注意到这一点,但是您对$.ready(function() {})
的原始调用是无效的,但是jQuery(document).ready(function() {})
确实有效吗?如果您使用$(document).ready(function () {} )
,您的通话是否有效?只是想确保它不是一个错字。 jQuery文档说$.ready(function() {})
是有效的,但不推荐使用。
好吧,假设它不是拼写错误,那听起来肯定与'$'变量存在冲突。如果您正在使用第三方控件或ASP.NET AJAX,则可能会遇到冲突(即使您可能未明确包含JS文件)。
如果您可以在页面加载后发布浏览器输出的内容,那将有所帮助。
此外,如果您运行Fiddler(或其他一些流量请求工具),您可以查看是否正在下载任何JS引用。不仅要查看.JS文件,还要查看.AXD文件(某些第三方工具将这些文件命名为ScriptResource.axd或WebResource.axd,它们可能会重新定义'$'变量)。
您可能想在jQuery API页面上查看有关noConflict函数的this link。当你与$ variable发生冲突时,这会有所帮助。
没有看到输出,很难诊断。但希望这会有所帮助。
答案 1 :(得分:0)
我也有同样的问题,听起来像是jQuery冲突 我解决了我的问题:
<script type="text/javascript" >
$(document).ready(function () {
$.noConflict();
});
</script>
在<head>
部分