有没有办法在调用noConflict()后使用$?

时间:2013-07-23 14:43:29

标签: javascript jquery ajax

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

  

var $ m = jQuery.noConflict();

     

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

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

有没有办法恢复?我尝试了这个但没有工作:

  

var $ = jQuery.noConflict();

2 个答案:

答案 0 :(得分:3)

使用函数表达式

(function ($) {
    // code using $ for jQuery
}(jQuerysVariable));

答案 1 :(得分: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