如果你包含两个不同版本的jQuery(因为jQuery插件需要第二个),这样可以吗?

时间:2010-12-24 18:58:18

标签: jquery jquery-plugins

我的项目使用jQuery 1.4.4。

但我刚下载了一个jQuery插件,它附带了jQuery 1.3.2的副本。

如果我在项目中包含两个版本的jQuery,它会产生任何冲突吗?

我怎么知道这个插件是否真的需要1.3.2版本?

如果确实真的需要它该怎么办?

5 个答案:

答案 0 :(得分:2)

@Hhorati Fhutanz:尝试在没有捆绑旧版本的情况下运行插件。如果有效,不用担心。如果它以某种方式依赖于旧版本的jQuery,你应该放弃它或发布它是哪个插件,这样人们可以告诉你是否有类似或更好的插件。

答案 1 :(得分:2)

  

我怎么知道这个插件真的   真的需要1.3.2版本吗?

试试你正在使用的版本。如果它有效,它就可以工作。

  

如果我这会造成任何冲突   包括我的两个版本的jQuery   项目

我相信你可以通过编写包含多个版本的jQuery:

var oldVersion = $.noConflict();

这会将$恢复到加载jQuery版本之前的状态。因此,当您加载最新版本时,它会假定为$。但是,您可能需要修改插件,以便使用正确的$oldVersion。如果插件设计正确,它很可能会使用一个闭包,这种变化很容易做到。

答案 2 :(得分:1)

删除1.3.2并尝试1.4.4,它应该工作,它们没有那么不同。 也许1.3.2是插件作者发布时的最新版本。

答案 3 :(得分:0)

您应该包含最新版本。 jQuery版本保持稳定的插件依赖性。

答案 4 :(得分:0)

  
    

但我刚下载了一个jQuery插件,它附带了jQuery 1.3.2的副本。

         

如果我在项目中包含两个版本的jQuery,它会产生任何冲突吗?

  

取决于它是如何“捆绑”的,加载顺序可以是在插件加载时确保jQuery 中的正确对象。如果插件正确捕获当前的jQuery实例,那么它应该不是问题。如果插件“正确”完成,它将被包装为:

;(function ($) {
  ...
}(jQuery)

此处无需使用noConflict影响$快捷方式。如果插件已正确绑定,则不适用。如果没有正确绑定,最好继续前进。如果插件适用于1.4.4,那么当然不要打扰1.3.2: - )

  
    

我怎么知道这个插件真的需要1.3.2版本吗?

  

文档是最好的选择。然而,只是尝试和看到可能是最实用的选择(这将是我的第一步)。

  
    

如果确实真的需要它该怎么办?

  

按上述方式加载订购并进行测试 - 或者将其黑客入侵 - 或者将更新/不同的插件作为替代品。

快乐的编码。