2010-09-16 3 views
2

Comment procéder pour ajouter un gestionnaire de clic dans l'exemple suivant? Je dois l'assigner à l'élément d'ancrage nouvellement ajouté.Attribuer un gestionnaire de clic aux éléments nouvellement ajoutés

$.each(regions1, function(key, value) { 

    var coords = regions1[key].rel.split('-'); 
    $("#map").append("<a href='javascript:void(0)' id='"+ regions1[key].id +"' class='bullet' style='left: "+ addpx(Number(coords[0]) - rempx(settings.bulletWidthOffset)) +"; top: "+ addpx(Number(coords[1]) - rempx(settings.bulletHeightOffset)) +"'>&nbsp;</a> ") 

    //.click(function(){showPopup(regions1[key].id);}) 

}); 

Répondre

1

Essayez ceci:

$.each(regions1, function(key, value) { 

    var coords = regions1[key].rel.split('-'); 

    // first, create the element 
    var element = $("<a href='javascript:void(0)' id='"+ regions1[key].id +"' class='bullet' style='left: "+ addpx(Number(coords[0]) - rempx(settings.bulletWidthOffset)) +"; top: "+ addpx(Number(coords[1]) - rempx(settings.bulletHeightOffset)) +"'>&nbsp;</a> "); 

    // then add the listener/handler 
    element.click(function(){showPopup(regions1[key].id);}) 

    // finally, append the new element to the dom. 
    $("#map").append(element); 
}); 
3

Vous souhaitez utiliser le mot-clé .live jQuery.

http://api.jquery.com/live/

$('.bullet').live('click', function() { 
    // Bound handler called. 
}); 

Cet échantillon, btw, doit rester en dehors de tout autre code de votre et placé dans le $ (document) .ready méthode jQuery. Il liera un événement click à tous les éléments qui ont une classe de "balle".

+0

Vous avez 'bind' dans l'extrait au lieu de 'vivre'. – sje397

+0

fixe que merci. – griegs

+0

D'accord, nous devons l'avoir édité en même temps. – Robert

Questions connexes