将jQuery插件升级到最新版本

时间:2010-07-06 19:35:32

标签: javascript jquery

我对jQuery插件有很快的疑问,希望有人有一些建议。 我正在使用一个按预期工作的jQuery插件,但在最近几天我们从jQuery 1.1.4升级到1.4.2。 经过大量的调试,我能够意识到在旧的插件中,选择器的编写如下:

 $('img[@id&=myImage]').each ...

一旦我们升级到最新版本的jQuery,我开始收到如下JavaScript错误:

uncaught exception: Syntax error, unrecognized expression: [@id&=myImage]

正如您所看到的,选择器包含一个“@”符号(我认为是导致错误的符号),在查阅了所有不同类型的选择器的jQuery文档后,我无法确定这是否是是否正确,因为它之前有效,现在却没有。

此时我必须弄清楚我是否可以在新版本的jQuery中使用旧插件,或者我是否必须提出替代解决方案。

我很感激任何建议 感谢

2 个答案:

答案 0 :(得分:4)

attribute selectors@removed in jQuery 1.3,只需将其取出,就像这样:

$('img[id^=myImage]').each(...);

另外我不确定&=会提到什么,我想你想要其中一个attribute selectors here,可能是starts-with (^=)ends-with ($=)

答案 1 :(得分:2)

这一切都归结为升级的利弊。
升级的优点是:

  1. 新版本肯定有很多改进 速度/性能以及错误修复。
  2. jQuery的新插件可能需要新版本,从长远来看,您可能会从中受益。
  3. 缺点:

    1. 您需要处理所有突破新插件的插件 版本。像有问题的那样( 我想你可以拿出来 @符号,它应该工作)。
    2. 您使用了多少个此类插件,以及您当前的大小 js代码可以打破这个 升级。 jQuery发布 像this和。{ this可能是一个起点
    3. 您可以根据上述成本和时间估算做出决定。如果只有1或2个插件需要稍微调整,我会说肯定会继续升级。
      然而,如果你有十几个插件中断,你将不得不重写几乎50 - 60%的前端代码,那么你有一个艰难的要求:)