问题几乎是理论上的。但是上次我已经惹恼了一些微妙的bug。当页面包含子帧并且父帧和子帧都使用相同的js文件时,如果我没有在开始时设置$ = jQuery,则此js文件的功能崩溃。诀窍可能在这里?
谢谢!
答案 0 :(得分:3)
除非您从$
变量中删除了引用,否则不应该这样做。
检查您是否在某处使用noConflict方法将jQuery与$
变量分离,或者使用名为$
的其他内容(如函数)。
答案 1 :(得分:3)
如果页面中的任何位置包含其他JavaScript库,则可能会使用$
。 Mootools和Prototype都使用$
。
如果包含jQuery然后包含Prototype,那么$
变量将被覆盖,因此在任何jQuery代码工作之前你必须设置$ = jQuery
:
<link rel="stylesheet" href="jQuery.js" />
<link rel="stylesheet" href="prototype.js" />
<script>$ = jQuery</script>
同样,正如@Guffa所说,如果你在任何地方调用noConflict,它将取消设置$
变量。
理想情况下,我认为您不应该使用$
变量,因为它可能会导致问题。做一些像:
jQuery.noConflict();
var jQ = jQuery;
然后使用jQ
变量,就像使用$
一样。那你就不会发生冲突。