javascript stopPropagation()阻止函数触发

时间:2012-08-09 17:11:09

标签: javascript jquery stoppropagation

我有一个带有body_left_details类的子div,它位于父类div中,类为body_left_bar。这两个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后是不允许外部函数?这会被认为是冒泡吗?

在Chrome 7上测试Windows 7 wamp。有任何见解赞赏!

编辑:Relevant jsfiddle。单击父div将导致警报,但单击“Read about it”不会产生任何结果。

1 个答案:

答案 0 :(得分:1)

$(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);
}​