我有一个类为body_left_details的子div,它位于父类为body_left_bar的div中。两个div都附加了一个onclick事件,但是当您单击body_left_bar时,我想防止body_left_details冒泡。以下是相关代码:

$(function() {
    $('.body_left_bar').click(function() {
        body_right_load('parent');
    })
    $('.body_left_details').click(function(e) {
        e.stopPropagation();
        body_right_load('child');
    })
})
function body_right_load(str) {
    alert(str);
}​


很简单。但是为什么当我单击body_left_details时,body_right_load('child')没有被调用?我在e.stopPropagation()之后直接使用alert()进行了测试,并且工作正常。 stopPropagation之后是否不允许使用外部功能?那会被认为是冒泡的吗?

在Windows 7 Wamp中使用Chrome进行测试。任何见解表示赞赏!

编辑:Relevant jsfiddle。单击父div将导致警报,但是单击“阅读有关内容”不会产生任何警告。

最佳答案

$(function() {
    $('.body_left_bar').on('click', function() {
        body_right_load('parent');
    })
    $('.body_left_details').on('click', function(e) {
        e.stopImmediatePropagation();
        body_right_load('child');
    })
})
function body_right_load(str) {
    alert(str);
}​

10-05 20:45
查看更多