Écoutez tous les événements onClick de tous les enfants dans jQuery
Je peux écouter tous les événements de clic mrow d'un div, en utilisant sometihng comme
$('#mydiv').on('click', 'mrow', function() {
var moo = $(this).attr('id');
if (handlers[id]) {
event.stopPropagation();
handlers[id]();
}
Puis-je utiliser une configuration similaire pour écouter sur tous les événements de clic de Tous les enfants de la div (sans configuration, des écouteurs séparés pour chaque type)? Une partie de l'arbre a des fonctions de gestionnaire et d'autres non, et je veux que ces requêtes se propagent dans la div, jusqu'à ce que celle qui a un gestionnaire soit trouvée.
4 réponses
$('#mydiv').on('click', '*', function() {
*
se liera à tous les éléments dans #mydiv
Démo -->
http://jsfiddle.net/Vjwqz/1/
Pour tous les descendants:
$('#mydiv').on('click', '*', function() {...});
Pour les descendants directs: {ce qu'on appelle les enfants en javascript}
$('#mydiv').on('click', '> *', function() {...});
Je pense que vous pouvez quitter le sélecteur
$('#mydiv').on('click', function() {
Type de sélecteur: chaîne une chaîne de sélecteur pour filtrer les descendants de les éléments qui déclenchent l'événement. Si le sélecteur est null ou omis, l'événement est toujours déclenché lorsqu'il atteint le élément.
Référez-vous à ceci http://api.jquery.com/all-selector/
Essayer:
$('#mydiv').on('click', '#mydiv *', function() {
var moo = $(this).attr('id');
if (handlers[id]) {
event.stopPropagation();
handlers[id]();
}