原型和jQuery干扰

时间:2009-03-16 22:16:26

标签: jquery prototypejs

我有很多jquery代码和一些使用原型

的.js脚本

问题是当我尝试在原型中调用$$方法时出现错误:$$未定义

所以我想知道获得$$工作的长手方法

$$('table.'+triggerClass).each(function(t){

有没有办法强制代码的这一部分使用原型,因为它可以在jquery jQuery.noConflict();中完成

3 个答案:

答案 0 :(得分:1)

我不确定是否有原型的$$()的长手版本。但是,我给你的建议是不要同时使用jQuery和Prototype。我这样说是出于几个原因:

  1. jQuery和Prototype都是相当大的库,意味着为用户提供大量下载
  2. jQuery和Prototype在功能上有很多重叠,并且会出现像你现在一样的冲突问题。
  3. 我建议你重写使用原型来使用jQuery的小js脚本。 (不是我推荐一个在另一个上面,只是考虑到你的情况,这就是我要做的事情)

答案 1 :(得分:0)

正如另一个答案所说,尽量不要同时使用两者。原型非常适合轻松的东西,jquery适用于更复杂的东西。

话虽如此,你还是重新映射jQuery以摆脱冲突:

jQuery.noConflict();

然后只需将jQuery对象分配给一个新变量。 请参阅here

答案 2 :(得分:0)

$$()是一个原型函数,所以如果你试图让代码“原样”,你将无法使其工作*。如果您可以更改代码(并将JQuery置于无冲突模式):

JQuery('table.'+ triggerClass).each(function(t){})

但同样,如果您没有触发任何冲突模式,则无法保证哪个库将提供$()

*我想从理论上讲,如果你真的想离开预订,可以将$$()映射到JQuery(),冒着破坏原型代码的风险。