0

我在元素上绑定了两个事件,如下所示:

<div class="view">
    <input type="checkbox" class="edit">
</div>

$(function(){
    $(".view").bind('dblclick', show1);
    $(".edit").bind('click',show2);
});

function show1(){
    console.info('here');
}

function show2(){
    console.info('hi');
}

在 Firefox 中这是正常的,但在 Chrome 中,div 的事件总是在单击复选框时调用。

仅供参考:http: //jsfiddle.net/dMcnJ/1/

4

2 回答 2

4
$(function(){
    $(".view").bind('dblclick', show1);
    $(".edit").bind('click',show2);
    // Disable event bubbling on dblclick
    $(".edit").bind('dblclick',function(e) { e.stopPropagation();});
});

function show1(){
    console.info('here');
}

function show2(event){  
    event.stopPropagation();
    console.info('hi');
}

http://jsfiddle.net/dMcnJ/9/

于 2012-06-09T05:41:23.653 回答
1

这称为事件冒泡。请执行下列操作:

function show2(e){
    e.stopPropagation();
    console.info('hi');
}
于 2012-06-09T05:38:54.040 回答