#javascript #jquery #prototypejs #javascript-framework #conflict
#javascript #jquery #prototypejs #javascript-фреймворк #конфликт
Вопрос:
Я использую prototype.js и jquery вместе, и я получаю это сообщение об ошибке
Uncaught TypeError: Object [object Object] has no method '_reverse' (Chrome)
Я вызывал jQuery.noConflict
раньше
Я использую jQuery.fn.reverse = [].reverse;
для того, чтобы иметь обратную функцию в коллекции jQuery
Комментарии:
1. Зачем вам использовать prototype, если у вас уже есть jQuery?
2. Я использую typo3 на этом сайте, и расширение зависит от prototype
Ответ №1:
Если вы используете jQuery в режиме без конфликтов, вам придется добавить функцию reverse в
jQuery.fn.reverse
Комментарии:
1. спасибо за ответ, но я хотел ответить на вопрос для себя 🙂 Просто проверяю, прав ли я
2. Вы правы, но проблема не в этом.
$.fn
вызывается внутри функционального блока с локальной$
переменной. Однако я изменю свой вопрос
Ответ №2:
prototype перезаписывает собственную 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;