2010-08-08 4 views
4

Plus précisément, je cherche à lier lightbox à un élément spécifique. Normalement, je voudrais juste faire ceci: $('a.lightbox').lightBox(); mais cela ne fonctionne pas puisque je fais du chargement avec AJAX. En regardant l'API jQuery j'ai trouvé .bind() et .live() mais je ne reçois rien quand je fais $('a.lightbox').bind('lightBox') après l'appel AJAX .Lier le gestionnaire d'événements personnalisé après ajax load

Qu'est-ce qui me manque?

Répondre

5

Vous devez ajouter une fonction de rappel qui gère cela. Bind ne va pas vous aider, car l'événement ne déclenche pas d'événement sur celui-ci.

+0

Parfait. Fonctionne très bien, je suppose que je n'ai pas eu à utiliser .bind() après tout. Aussi, c'est pourquoi j'ai été confondu avec bind - je savais que cela nécessitait une fonction de l'API mais je n'avais pas une telle fonction. – Radu

1

Une autre façon serait de se lier à un élément plus haut dans le dom et de vérifier le type de cible. Tels que:

$('#div').bind('click', function (event) { 
    target = $(event.target); 
    if (target.hasClass('lightbox')) { 
     // do stuff here 
    } 
}); 

Il suffit de ne pas aller trop loin ou vous serez rattrapent trop de clics.

Questions connexes