2013-12-24 6 views
1

демонстрационном http://jsfiddle.net/tsxb8/Нажмите не уволили за дочерний элемент

$('.parent').on('click', function() { 
    alert(1); 
}); 
$('.child').on('click', function() { 
    alert(2); 
}); 

Мне нужно запустить некоторый код, который прикреплен к дочернему элементу, когда родительский элемент кликнули.

Как я вижу, обработчик щелчков детей не запускается, когда пользователь нажимает на область родителей (более темный серый, alert = 1), который не является частью области childs (светло-серый, alert = 2) ,

Как исправить это?

+2

если вы нажмете на ребенке вы хотите родительская событие огня –

+0

На самом деле, пользователь может щелкнуть непосредственно на дочерний элемент. Я хочу, чтобы какой-то последовательный способ обрабатывать клики по обоим элементам и заставить мой код работать только один раз. – Jasper

+0

«оба клика уволены. Мне нужен только обратный вызов от обоих»? А? –

ответ

6

Trigger щелчок на ребенке явно родительский обработчик:

$('.parent').click(function() { 
    alert(1); 
    $(this).find('.child').click(); 
}); 

$('.child').click(function(e) { 
    e.stopPropagation(); // Prevent bubbling to parent, to avoid loop 
    alert(2); 
}); 

DEMO

Смежные вопросы