我只是改变了我的wordpress主题加载jQuery的方式,从手动加载谷歌的版本到排列wordpress附带的版本。 wordpress附带的版本中包含“noconflict()”,因此$快捷方式不再适用于我的所有jQuery,而是需要在其中使用“jQuery”。
我有很多.js脚本和很多jquery设置页面上的初始化,现在没有一个工作,因为它全部使用简写$。
我的问题是,假设我需要使用wordpress附带的noconflict版本,修复速记代码的最佳方法是什么?
我应该在每个脚本的顶部添加这样的行吗?
jQuery(document).ready(function($) {
或者我应该“在文件中查找”所有$并用jQuery替换?
答案 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));
此通过锁定jQuery
,undefined
以及对您的代码至关重要的任何其他API的实现来缓解可能存在冲突的代码。
答案 2 :(得分:1)
您可以使用立即执行的函数来创建名为$
的变量,该变量设置为jQuery
。这可以模拟切换到noconflict
之前的行为:
(function(){
var $ = jQuery;
//now use $ as you always have
})();
OR
(function($){
//now use $ as you always have
})(jQuery);