0

次のような要素に 2 つのイベントをバインドしています。

<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 に答える