我正在尝试阻止在用户单击子项或div时触发click事件。
我有
<div class='test'>
<div class='click1'>
test 1
</div>
<div class='click1'>
test 2
</div>
<div class='click1'>
test 3
</div>
</div>
我的jquery
$('.test').click(function(e){
e.stopPropagation(); //doesn't work
alert('click!')
})
我需要将点击事件注册到.test div,并且我不希望在用户点击子div时弹出警告。
反正有没有这样做?非常感谢!
答案 0 :(得分:2)
$('.test').on('click', '*', function(e){
e.stopPropagation();
});
DEMO:http://jsfiddle.net/rD2ua/
修改强>
$('.test').children().bind('click', function(e){
e.stopPropagation();
});
您可以直接绑定到子元素
答案 1 :(得分:2)
更新:
$('.test').click(function(e){
if (e.target.className == 'click1') {
return false;
}
})
工作演示:http://jsfiddle.net/drDMK/
甚至这个:
$('.test').click(function(e){
if (e.target.className != 'test') {
return false;
}
})
答案 2 :(得分:1)
您应该在子级别(即“click1”)捕获click事件并停止传播。它将UP传播到其父级('test')。