2013-05-27 17 views
21

mogę słuchać wszystkich zdarzeń mrow kliknięciem div, używając sometihng jakSłuchaj wszystkich zdarzeń onclick wszystkich dzieci w jQuery

$('#mydiv').on('click', 'mrow', function() { 
    var moo = $(this).attr('id'); 
    if (handlers[id]) { 
     event.stopPropagation(); 
     handlers[id](); 
} 

Czy mogę zastosować podobną konfigurację do słuchania na wszystkich click wydarzeń wszystkie dzieci div (bez konfiguracji, oddzielnych słuchaczy dla każdego typu)? Pewna część drzewa ma funkcje obsługi, a niektóre nie, i chcę, aby te żądania były propagowane w obrębie div, aż znajdzie się taki, który ma moduł obsługi.

+0

"wszystkie dzieci" Bezpośredni potomkowie lub wszyscy potomkowie? –

Odpowiedz

34
$('#mydiv').on('click', '*', function() { 

* zwiąże wszystkim elementem w ciągu #mydiv

Demo -->http://jsfiddle.net/Vjwqz/1/

+0

Jeśli spróbuję tego, http://jsfiddle.net/Vjwqz/, wygląda na to, że nic się nie dzieje:/ –

+0

ya, ponieważ w # mydiv nie ma pliku #mddiv. Zobacz moją odpowiedź;) –

+0

Widzę, dziękuję wam! –

1

myślę, że może opuścić selektor

$('#mydiv').on('click', function() { 

selektor Typ: String Ciąg wybieraka filtruj potomków wybranych elementów, które wyzwalają zdarzenie. Jeśli selektor ma wartość null lub jest pominięty, zdarzenie jest zawsze wyzwalane po osiągnięciu wybranego elementu .

http://api.jquery.com/on/

+1

Próbowałem tego na początku, ale potem $ (this) .attr ("id) to zawsze #mydiv, a event.target.id jest" ", gdy Na przykład klikam na nim nubera - nie mogę się zgłosić, dopóki nie znajdę prawidłowego programu obsługi. –

9

Dla wszystkich potomków:

$('#mydiv').on('click', '*', function() {...}); 

Dla bezpośrednich potomków: {co nazywa się dzieci w Javas cript}

$('#mydiv').on('click', '> *', function() {...}); 
Powiązane problemy