Supposons que vous voulez ajouter dynamiquement à un menu HTML, où le menu HTML ressemblera-so:Comment ajouter un événement à un élément jQuery qui vient d'être ajouté?
<ul>
<li><a href="#">item-1</a>
<li><a href="#">item-2</a>
</ul>
Et chaque élément a un événement « clic » lié par. Comment créer cela dynamiquement avec jQuery?
Qu'as Je voudrais est l'équivalent de ce qui suit (avec tableau de menu_item hypothétique d'objets avec « le titre de):
$('menu').append("<ul>");
for (var index in menu_items) {
$('menu').append("<li><a href='#'>"+menu_item['title']+"</a>")
.live("click", function(e) { /* Event Handler */ });
}
$('menu').append("</ul>");
Malheureusement, cela ne fonctionnera pas pour deux raisons (au moins, que Je suis au courant):
-
-
balises
- l'élément .live() correspond uniquement à l'élément inséré le plus récent.
J'aimerais savoir comment on pourrait résoudre ce problème avec jQuery. Je préférerais faire cela sans encombrer mon espace de noms, si c'est possible.
EDIT:
Deux précisions (dans le cas où il est pas évident):
Le < ul> n'existe pas pour commencer.
Informations menu_item est utilisé dans la fonction (c.-à-.live ('click', function (e) {/ * do_something_with ... */menu_item [ 'info']}).
Im en supposant que vous vouliez dire ". Menu";) - désolé je suis facétieux.En utilisant cette méthode le menu "clic" serait déclenché n'importe où dans cet élément, le clic est requis sur les éléments li/a –
J'utilise le même sélecteur que la question originale – stimms