2

我只是将我的 wordpress 主题加载 jQuery 的方式从手动加载 google 的版本转换为对 wordpress 附带的版本进行排队。wordpress 附带的版本中包含“noconflict()”,因此 $ 快捷方式不再适用于我的所有 jQuery,而是我需要在它的位置使用“jQuery”。

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

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

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

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

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

4

3 回答 3

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);
于 2012-07-07T23:08:21.923 回答
2

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

(function($, window, undefined) {


}(jQuery, window));

这通过锁定 的实现以及对您的代码至关重要的任何其他 API 来减轻代码冲突的可能性。jQueryundefined

于 2012-07-07T23:08:13.793 回答
1

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

(function(){ 

    var $ = jQuery;

    //now use $ as you always have

})();

或者

(function($){ 

    //now use $ as you always have

})(jQuery);
于 2012-07-07T23:07:01.833 回答