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