切换到jQuery noconflict,我该如何修复代码?

时间:2012-07-07 23:05:03

标签: jquery

我只是改变了我的wordpress主题加载jQuery的方式,从手动加载谷歌的版本到排列wordpress附带的版本。 wordpress附带的版本中包含“noconflict()”,因此$快捷方式不再适用于我的所有jQuery,而是需要在其中使用“jQuery”。

我有很多.js脚本和很多jquery设置页面上的初始化,现在没有一个工作,因为它全部使用简写$。

我的问题是,假设我需要使用wordpress附带的noconflict版本,修复速记代码的最佳方法是什么?

我应该在每个脚本的顶部添加这样的行吗?

jQuery(document).ready(function($) {

或者我应该“在文件中查找”所有$并用jQuery替换?

3 个答案:

答案 0 :(得分:4)

Wordpress推荐:好读http://codex.wordpress.org/Function_Reference/wp_enqueue_script#jQuery_noConflict_wrappers

http://api.jquery.com/jQuery.noConflict/

<强>码

(function($) {
    // $() will work as an alias for jQuery() inside of this function
})(jQuery);

答案 1 :(得分:2)

您可以将jQuery对象和您希望在沙箱(函数)中使用的任何其他API的\对象传递给立即执行的匿名函数:

(function($, window, undefined) {


}(jQuery, window));

通过锁定jQueryundefined以及对您的代码至关重要的任何其他API的实现来缓解可能存在冲突的代码。

答案 2 :(得分:1)

您可以使用立即执行的函数来创建名为$的变量,该变量设置为jQuery。这可以模拟切换到noconflict之前的行为:

(function(){ 

    var $ = jQuery;

    //now use $ as you always have

})();

OR

(function($){ 

    //now use $ as you always have

})(jQuery);