Недавно мы обновили наш jQuery до 1.9.0, но он сломал наш подвыпивший плагин. Его функциональность live
теперь вызывает ошибку.
$('.tooltip, abbr').tipsy({
live: true
});
TypeError: this[binder] is not a function
Есть ли какие-либо исправления или исправления для этого? Googling не принес ничего полезного.
UPDATE:
Спасибо за ответы. Я решил сам решить проблему, потому что не мог найти никаких патчей.
После осмотра ошибка показалась очень легкой для отслеживания. Подвесной плагин может быть легко исправлен, чтобы использовать функциональность on
вместо устаревших функций live
. В подвыпитом плагине я заменил следующий код:
if (options.trigger != 'manual') {
var binder = options.live ? 'live' : 'bind',
eventIn = options.trigger == 'hover' ? 'mouseenter' : 'focus',
eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur';
this[binder](eventIn, enter)[binder](eventOut, leave);
}
с:
if (options.trigger != 'manual') {
var eventIn = options.trigger == 'hover' ? 'mouseenter' : 'focus',
eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur';
if (options.live)
$(document).on(eventIn, this.selector, enter).on(eventOut, this.selector, leave);
else
this.bind(eventIn, enter).bind(eventOut, leave);
}
Работает как шарм.:)