2012-07-07 40 views
2

我只是改变了我的WordPress主题加载jQuery的方式,从手动加载谷歌的版本到加入WordPress的版本。 wordpress附带的版本中有“noconflict()”,所以$快捷方式不再适用于我所有的jQuery,而是我需要在它的位置使用“jQuery”。切换到jQuery noconflict,我该如何修复代码?

我在页面上有很多.js脚本和很多jquery设置初始化,现在它们都不起作用,因为它全部使用简写$。

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

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

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

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

回答

1

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

(function(){ 

    var $ = jQuery; 

    //now use $ as you always have 

})(); 

OR

(function($){ 

    //now use $ as you always have 

})(jQuery); 
2

你可以进入一个立即执行的匿名函数jQuery对象和任何其他的API \对象要与沙箱内运行(功能):

(function($, window, undefined) { 


}(jQuery, window)); 

减轻李通过锁定jQueryundefined和任何其他对您的代码非常重要的API的实现来锁定冲突的代码。

+1

啊 - 整洁的 - 这是为了保护'undefined'我从来没有看到过的方式。 – 2012-07-07 23:12:40

+0

@AdamRackis yeap,我第一次看到它被使用在jQuery源代码中http://code.jquery.com/jquery-latest.js – xandercoded 2012-07-07 23:15:15