【问题标题】:How to avoid conflict between JQuery and Prototype如何避免 JQuery 和 Prototype 之间的冲突
【发布时间】:2009-09-09 18:40:27
【问题描述】:

如果一个页面同时具有 JQuery 和 Prototype,那么我就会发生冲突。有一个选项可以为 JQuery 禁用 $ 符号,因此没有冲突,但是我必须使用关键字 JQuery 而不是 $。

我想知道 Prototype 是否有任何选项可以解决这个冲突。有什么方法可以在不损害它们的好处或短关键字的情况下使用这两个库?

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

【问题讨论】:

  • 确保在原型之前加载 jQuery
  • 我认为这一定是 jQuery 被问得最多的问题之一 :)

标签: javascript jquery prototypejs conflict


【解决方案1】:

使用 jQuery 的 noConflict 方法并将其分配给一个新的(短)变量。在您使用 $ 表示 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);

【讨论】:

  • 对于您的任何一个代码示例,jQuery 是否必须包含任何特定顺序(第一个、最后一个等)?
  • 如果您使用 noConflict,则必须在调用之前包含 jQuery(显然),就像定义 $ 的其他库一样。有关更多信息,请参阅此页面:docs.jquery.com/Using_jQuery_with_Other_Libraries
  • @tvanfosson 我不知道可以分配变量,好技巧:) 嗯...我知道第二种技术,但不喜欢它:( 它让我很容易混淆。谢谢你的时间:)
猜你喜欢
  • 1970-01-01
  • 2014-10-09
  • 2012-01-01
  • 2019-02-21
  • 1970-01-01
  • 2016-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多