如何避免JQuery和Prototype之间的冲突

时间:2009-09-09 18:40:28

标签: javascript jquery prototypejs conflict

如果页面同时包含JQuery和Prototype,那么我就会遇到冲突。有一个选项可以禁用JQuery的$ sign,所以没有冲突,但我必须使用关键字JQuery而不是$。

我想知道Prototype是否有任何选项可以解决这个冲突。有没有办法在不损害其利益或短关键字的情况下使用这两个库?

据我所知,对同一页面使用多个JS库并不是一个好主意;但有时可能会有所帮助。

1 个答案:

答案 0 :(得分:34)

对jQuery使用noConflict方法并将其分配给新的(短)变量。使用new变量,无论你在哪里使用$ for jQuery。

var $j = jQuery.noConflict();

$j(function() {
    $j('#selector').each( .... );
});

或者,如果您不需要混合Prototype / jQuery,您可以将所有jQuery代码包装在匿名函数中。

(function($) {
    // $ sign here is a parameter, which is set to jQuery 

    $(function() {
        $('#selector').each( .... );
    });
})(jQuery);