有没有一种方法可以在调用noConflict()之后使用$

is there a way to use $ after calling noConflict()?

本文关键字:noConflict 调用 之后 一种 方法 有没有      更新时间:2023-09-26

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

var$m=jQuery.noConflict();

$m.getJSON(

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

有办法恢复吗?我试过了,但没有成功:

var$=jQuery.noConflict();

使用函数表达式

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

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

(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