jquery jquery-plugins tooltip live tipsy

tipsy live no funciona con jQuery 1.9.0



jquery-plugins tooltip (2)

Recientemente hemos actualizado nuestro jQuery a 1.9.0, pero se rompió nuestro plugin borracho. Su funcionalidad en live ahora causa un error.

$(''.tooltip, abbr'').tipsy({ live: true }); TypeError: this[binder] is not a function

¿Hay alguna corrección o parche para esto? Googlear no condujo a nada útil.

ACTUALIZAR:

Gracias por las respuestas. Decidí intentar solucionar el problema yo mismo, porque no pude encontrar ningún parche.

Tras la inspección, el error parecía muy fácil de rastrear El complemento borracho puede parchearse fácilmente para usar la funcionalidad on lugar de la funcionalidad en live desaprobada. En el plugin tipsy, reemplacé el siguiente código:

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); }

Funciona de maravilla. :)


El problema es que este complemento aún usa .live() para que funcione el método en live que .live() allí, está en desuso y ha sido reemplazado por .on()

Debe intentar buscar una versión actualizada del complemento o intentar reemplazarlo usted mismo.


debe incluir el complemento de migración de jquery, ya que está utilizando live:true , utiliza jquery.live que se eliminó en jquery 1.9 .

Para la compatibilidad con versiones anteriores, han creado un complemento de migración que se puede descargar aquí e incluyen el complemento de migración para agregar compatibilidad con los métodos y utilidades eliminados.

Estaría haciendo algo como

if (options.trigger != ''manual'') { var eventIn = options.trigger == ''hover'' ? ''mouseenter'' : ''focus'', eventOut = options.trigger == ''hover'' ? ''mouseleave'' : ''blur''; if(options.live){ $(this.context).on(eventIn, this.selector, enter).on(eventOut, this.selector, leave); } else { this.on(eventIn, enter).on(eventOut, leave); } }