因此,我正在开发一个平台,每次加载页面时都会注入jQuery-1.2.6。我开发了我的页面来使用jQuery-1.4.2,所以当我的页面加载时,我的页面上有2个jQuery实例。jQuery noConflict()问题
为了避免发生冲突,我已经包括在我的JS文件下面一行是超出了我的页面:
var mc$ = jQuery.noConflict();
jQuery(function($)
一切似乎如果我用了其中$原本是用来MC $奏效。
我在Firebug和IE中遇到了一个错误,我不知道该如何解决。
在一个文件时,我的网页加载开发商是在平台上注入做:
$(document).ready(function() {
,并在Firebug的错误规定:“$不是一个函数”。
此错误才开始显示出来,一旦我做出的改变:
var mc$ = jQuery.noConflict();
我想,通过创建MC $变量的东西与开发者的$(document)...呼叫爆发。如果是这样,我不知道如何解决这个问题,如果没有,我希望有一个解决方案,我可以将该功能提供回开发者的注入文件。
谢谢!
'.noConflict()'是兼容*其他* JavaScript库/在同一页面中,不支持任何方式支持jQuery(在1.6+中为sans'.sub()')的多个实例。 – 2011-06-04 23:55:14
@Nick Craver noConflict()'[文档](http://api.jquery.com/jQuery.noConflict/)不同意你的看法。它特别提到了通过'true'作为参数来解除冲突的'jQuery'符号。 – lawnsea 2011-06-05 00:17:13
@lawnsea - 这是特别的(并限于)1.6+(我上面提到的例外)。请注意,即使这样,你仍然会遇到许多*问题,例如,插件是在jQuery对象上定义的,就像许多事件处理程序一样(取决于jQuery或它们的插件)。这来自于解决这些问题的经验......请记住,如果没有插件等,那么没有理由将旧版本保留在首位。 – 2011-06-05 04:39:14