Comment imiter jQuery.live () ou utiliser 2 versions de jQuery en présence d’une bibliothèque de prototypes?

Nous rendons notre contenu dans un “wrapper” HTML fourni par le client. Ce wrapper HTML contient une référence à jQuery 1.2.6, c’est ce que j’utilise pour mes fonctionnalités jQuery jusqu’à présent.

Le problème auquel je suis confronté est que je suis en train de rendre dynamicment du contenu qui nécessite un événement de clic associé. L’événement click est associé aux éléments sur $ (document) .ready (). En tant que tel, j’ai besoin des fonctionnalités de la fonction .live () disponible dans la version 1.3+.

Alors je me demande quelles sont mes options?

Existe-t-il un moyen pour moi de facilement imiter la fonctionnalité de .live () afin de ne pas avoir besoin de la fonction fournie par la bibliothèque jQuery?

Dois-je inclure la nouvelle bibliothèque jQuery dans notre contenu? Ce n’est pas idéal car cela provoque des conflits qui doivent être gérés et nous gérons déjà des conflits avec une bibliothèque de prototypes que quelqu’un d’autre a incluse dans le wrapper avec la ligne suivante:

jQuery(document).ready(function ($) { 

à moins que quelqu’un puisse me montrer un moyen facile de le faire?

… ou dois-je dire au client qu’il est temps pour eux de mettre à jour leur jQuery? Je ne sais pas s’il est probable que cela se produira.

Quelqu’un peut-il suggérer une solution à ce problème? Merci

Pouvez-vous utiliser le plugin livequery? Devrait fonctionner avec cette version.

http://plugins.jquery.com/project/livequery/

Vous pouvez simplement lancer votre propre délégation d’événement. Par exemple, plutôt que de vous lier aux éléments créés dynamicment, par exemple:

 $('.foo').click(function() { /* foo handler */ }); 

Vous pouvez plutôt attacher un gestionnaire à un élément de niveau supérieur, tel que le document, et filtrer les événements de clic:

 $(document).click(function(evt) { var $target = $(evt.target); if ($target.is('.foo') || $target.parents('.foo').length > 0) { /* foo handler */ } }); 

C’est l’idée de base sur laquelle vivent (et le nouveau délégué ).


* exemple édité pour vérifier également les éléments parents de la cible de l’événement