如何解决jQuery和mooTools之间的$冲突?

时间:2012-10-24 00:42:13

标签: jquery mootools

好的,我已经在网站上为朋友工作了很长时间..我的编码技巧有问题,而且我遇到了很多问题。

目前我网站上的jQuery停止工作,我找不到原因,而且我已尽我所能努力让它发挥作用。 (我已经在互联网上跟踪了无数的指南,用于排除故障等等,我仍然无法让它工作)

然后仔细查看错误后,使用浏览器控制台我发现mootools和jQuery在$之间存在冲突。

我一直在尝试使用jQuery.noConflict(),但我似乎无法弄清楚如何使用它。

有人可以帮助我吗?

真诚的,Malmoc

5 个答案:

答案 0 :(得分:3)

在调用jQuery.noConflict()之后,您只需要将jQuery对象称为jQuery而不是$。您的代码需要更新以反映这一点:

$(document).ready();

会变成

$.noConflict();
jQuery(document).ready();

答案 1 :(得分:2)

在您致电$.noConflict()后,您将继续使用jQuery。如果您想继续使用$,可以使用闭包来实现:

// Free-up $
$.noConflict();
// Use jQuery as '$' safely
(function($){
    // Fire on ready
    $(function(){
        alert( "Page loaded" );
    });
})(jQuery);

这可以防止任何外部代码篡改闭包内的$

答案 2 :(得分:2)

jQuery.noConflict()将$的值恢复为以前的值。

这意味着从那时起你将不得不使用jQuery来引用jQuery。

继续使用jQuery作为$的一种巧妙方法就是做这样的事情:

(function ($) {
    // $ is actually jQuery here
    $(document).ready(function () {

    })
}(jQuery))

答案 3 :(得分:1)

一个简单的解决方案是将你的jQuery代码包装起来:

(function($)
    $(document).ready(function() {
        $('#myelementID').fadeIn(399);

        //do other jQuery stuff ....
    });
})(jQuery);

答案 4 :(得分:0)

$ = jQuery

jQuery = $

您遇到$,

的碰撞
A. Drop Mootools or Jquery
B. Use jQuery('selector') instead of $()
C. Reference the $ to something else, buckWildProgramming = $

希望有所帮助。