2012-01-06 2 views
0

У меня есть эта странная проблема, когда у меня есть UL с некоторыми элементами LI. Я связал событие dblclick() как с UL, так и с LI, и когда Я dblclick элемент LI, как событие LI, так и событие UL запускаются. Есть ли способ избежать этого?jquery - dblclick on child также вызывает событие dblclick на родительском

Это мой код:

$("ul").dblclick(function() { 
     alert("ul clicked"); 
    }); 

    $("li").dblclick(function() { 
     alert("li clicked"); 
    }); 

ответ

3

dblclick событие пузыри вверх по дереву DOM, а предок элементы также уведомлен. Для того, чтобы предотвратить событие от барботажа, вам нужно stop propagation of the event:

$("li").dblclick(function (e) { 
    alert("li clicked"); 
    e.stopPropagation(); 
}); 

Пример: http://jsfiddle.net/HkUQ4/

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