3 votes

Comment puis-je gérer l'événement de clic d'un li d'ul alimenté dynamiquement ?

Je travaille sur un système d'autorisation. J'ai quatre listes non ordonnées. Nommons-les list1, list2, list3 et list4. Deux d'entre elles concernent des pays et les deux autres des villes. list1 contient tous les pays. list2 contient tous les pays disponibles pour un employé. Les utilisateurs déplacent un pays de la liste 1 à la liste 2. Lorsque l'utilisateur clique sur la liste 2, je peux gérer cet événement et je remplis les villes de ce pays dans la liste 3 avec jquery. Cette liste de villes provient d'une page web aspx. Je veux gérer l'événement de clic de la liste 4. La liste 4 contient toutes les villes disponibles pour l'employé. J'ai écrit ces lignes.

$('#clist2 li').click(function() {
    alert('test');
});

Mais je n'ai pas vu l'alerte. Comment puis-je gérer l'événement de clic de la liste 4 ?

5voto

Nick Craver Points 313913

Vous pouvez utiliser .delegate() ici, comme ça :

$('#clist2').delegate('li', 'click', function() {
    alert('test');
});

$('#clist2 li') obtient tous les <li> éléments à l'intérieur #clist2 à cette époque Au lieu de cela, vous pouvez lier un gestionnaire à l'adresse suivante #clist2 directement qui écoute le click des événements de n'importe quel <li> éléments (présents ou ajoutés ultérieurement, leurs événements bouillonnent de la même manière) à faire des bulles .

1voto

rfunduk Points 15267

Vous pourriez utiliser .live() d'avoir tous li reçoivent des événements de clic, qu'ils existent ou non au moment de la liaison (par exemple, le sélecteur doit simplement correspondre).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X