问题几乎是理论上的。但是上次我遇到了一些微妙的错误。当页面包含子框架并且父框架和子框架都使用相同的js文件时,如果我在开始时未设置$ = jQuery,则此js文件的功能会崩溃。这里有什么窍门?
谢谢!
问题几乎是理论上的。但是上次我遇到了一些微妙的错误。当页面包含子框架并且父框架和子框架都使用相同的js文件时,如果我在开始时未设置$ = jQuery,则此js文件的功能会崩溃。这里有什么窍门?
谢谢!
如果页面中的任何位置都包含其他JavaScript库,则可能使用$
。 Mootools和Prototype都使用$
。
如果包括jQuery的,然后你有原型则$
变量将被覆盖,所以你必须设置$ = 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
变量,你将有$
。那么你不会得到冲突。
除非您从$
变量中删除参考,否则不应该使用该参数。
检查,如果你使用的是noConflict方法某处从$
变量分离jQuery的,或者有其他的东西(比如一个函数)命名$
。
我不完全确定你的意思,但'$ = jQuery'已经在内部设置了。 – pimvdb
也许你正在使用jQuery的一个非常旧的版本,或者这个脚本是非常奇怪的。你是否收到任何错误讯息? – Kokos
好的!谢谢大家!我抓到了我的错,问题在于jQuery.noConflict() – baio