0

我对我的源代码使用 noConflict() ,因为在我的程序中包含来自其他源代码的重复 jquery.js 有很多问题:

var $m = jQuery.noConflict();

$m.getJSON(........

问题是当我调用 noConflict() 时,$ 将不起作用。我知道我可以将 $ 更改为 JQuery 来解决这个问题。但是我们有很多来自其他人的自定义代码,这不可能更改所有源代码。

有办法恢复吗?我试过这个但不工作:

var $ = jQuery.noConflict();

4

2 回答 2

3

使用函数表达式

(function ($) {
    // code using $ for jQuery
}(jQuerysVariable));
于 2013-07-23T14:44:50.993 回答
0

如果您可以访问其他代码,请将其包装在绑定jQuery到名为的参数的 IIFE 闭包中$

(function($) {
     ...
})(jQuery);

如果您无权访问其他代码,您可以尝试临时设置$为指向您的“无冲突”jQuery 实例:

var _tmp = window.$;   // save old value
window.$ = $m;         // or window.$ = window.jQuery

// invoke and/or load other code here
...

window.$ = _tmp;       // restore previous value
于 2013-07-23T14:49:52.547 回答