2009-09-09 52 views
15

如果一个页面同时拥有JQuery和Prototype,那么我会发生冲突。有一个选项可以禁用JQuery的$符号,所以没有冲突,但是,我必须使用关键字JQuery而不是$。如何避免JQuery和原型之间的冲突

我不知道是否有任何原型来解决这个冲突的选项。有没有什么办法可以同时使用这两个库而不损害他们的好处或简短的关键字?

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

+0

确保您的原型 – 2009-09-09 19:00:46

+0

我想,这已经是最问jQuery的问题:) – 2009-09-09 22:00:44

回答

34

对jQuery使用noConflict方法并将其分配给新的(短)变量。无论你使用jQuery的$哪个地方使用新的变量。或者,如果你不需要混合Prototype/jQuery,你可以将所有的jQuery代码包装在一个匿名函数中。

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

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

一个是否有任何特定的顺序是jQuery的已被列入(第一之前加载了jQuery,最后,等)为你的任何代码示例? – 2009-09-09 19:22:00

+0

如果您使用noConflict,则在您调用它之前(显然)必须包含jQuery,就像定义$的其他库一样。看到这个页面的更多信息:http://docs.jquery.com/Using_jQuery_with_Other_Libraries – tvanfosson 2009-09-09 19:30:36

+0

@tvanfosson 我不知道一个变量可以分配,很好的诀窍:)呃......我知道第二种技术,但不喜欢它:(它让我很容易混淆。谢谢你的时间:) – Sadi 2009-09-09 19:31:04