jQuery和prototype不能与Array.prototype.reverse一起使用

时间:2011-11-14 10:16:16

标签: javascript jquery prototypejs javascript-framework conflict

我一起使用prototype.js和jquery,我收到此错误消息

Uncaught TypeError: Object [object Object] has no method '_reverse' (Chrome)

我在

之前致电jQuery.noConflict

我正在使用jQuery.fn.reverse = [].reverse;在jQuery集合上具有反向功能

2 个答案:

答案 0 :(得分:1)

如果您在noconflict模式下使用jQuery,则必须将反向功能添加到

jQuery.fn.reverse

答案 1 :(得分:1)

原型会覆盖原生Array.protoype.reverse函数并将原始文件保存在Array.prototype._reverse中。

此片段考虑到了这一点

if (typeof []._reverse == 'undefined') {
    $.fn.reverse = Array.prototype.reverse;
} else {
    $.fn.reverse = Array.prototype._reverse;
}

旧的错误解决方案

// for compatibility with prototype.js
if (![]._reverse) {
  []._reverse = [].reverse;
}
jQuery.fn.reverse = [].reverse;