Abbiamo recentemente aggiornato il nostro jQuery alla versione 1.9.0, ma ha rotto il nostro plugin di punta. La sua funzionalità live
provoca ora un errore.tipsy live non funziona con jQuery 1.9.0
$('.tooltip, abbr').tipsy({
live: true
});
TypeError: this[binder] is not a function
Sono presenti correzioni o patch per questo? Googling non ha portato a nulla di utile.
UPDATE:
Grazie per le risposte. Ho deciso di provare a risolvere il problema da solo, perché non sono riuscito a trovare alcuna patch.
In seguito all'ispezione, l'errore sembrava davvero facile da rintracciare. Il plug-in brilla può essere facilmente modificato per utilizzare la funzionalità on
invece della deprecata funzionalità live
. Nel plugin brillo, ho sostituito il seguente codice:
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);
}
con:
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);
}
funziona come un fascino. :)
cerca qui con 'conflitto jquery plugin' – Amir
Great post! Da dove viene "this.selector"? –
@RichPeck 'this.selector' è una proprietà dell'oggetto jQuery sottostante. – crush