2010-08-17 9 views
0

J'ai le code suivant qui fonctionne bien:Pourquoi jQuery live() ne fonctionne pas?

$('.ui-selectmenu-menu a').click(function() { alert('OK'); }); 

Cependant, si je le remplace par:

$('.ui-selectmenu-menu a').live('click', function() { alert('OK'); }); 

il ne fonctionne pas.

Quelle pourrait être la raison de cela?

(Dans mon cas, $('.ui-selectmenu-menu a') éléments pourraient être retirés et ajoutés à nouveau pendant la course.)

Répondre

1

Si les changements de classe par exemple le parent n'a pas class="ui-selectmenu-menu alors le sélecteur ne correspondra plus, assurez-vous que cela ne se produit pas après tous les événements que vous avez. Contrairement à la liaison directe à l'élément, le sélecteur qui ne correspond plus empêche un gestionnaire .live() de déclencher les événements de cet élément.