特定于脚本的jQuery别名

Vic*_*lio 0 javascript jquery

WordPress的jQuery的船舶在安全模式下,这是非常真棒,但我必须使用第三方脚本使用的$别名,所以有别名的方式$jQuery只为脚本?(因为它是第三方所以无法编辑脚本)

Jam*_*iec 5

将插件的初始化包装在IIFE中

(function($){
   $('.some').pluginUsingDollarAsJQuery();
})(jQuery)
Run Code Online (Sandbox Code Playgroud)


根据插件作者帮助页面:

$变量在JavaScript库中非常流行,如果你在jQuery中使用另一个库,你将不得不让jQuery不使用$ with jQuery.noConflict().但是,这会破坏我们的插件,因为它是在假设$是jQuery函数的别名的情况下编写的.为了能够很好地使用其他插件,并且仍然使用jQuery $别名,我们需要将所有代码放在Immediately Invoked Function Expression中,然后传递函数jQuery,并命名参数

这基本上归结为这样一个事实:无论谁编写了你正在使用的插件,都没有做到这一点.

编写这样的插件:

$.fn.doSomething = function(){
   // whatever
}
Run Code Online (Sandbox Code Playgroud)

会使它与noConflict模式下使用jQuery的任何人都不兼容.应该像这样包裹在IIFE中:

(function($){
    $.fn.doSomething = function(){
       // whatever
    }
})(jQuery)
Run Code Online (Sandbox Code Playgroud)

如果你的插件是前一种风格,请抛弃它.