1

body_left_detailsclassを持つ親 div に存在する class を持つ子 div がありますbody_left_barbody_left_bar両方の div には onclick イベントが関連付けられていますが、クリックしたときのバブリングを防止したいと考えています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_detailsbody_right_load('child') が呼び出されないのはなぜですか? e.stopPropagation() の直後に alert() を使用してテストしたところ、問題なく動作しました。stopPropagation の後、外部関数は使用できませんか? それはバブリングと見なされますか?

Chrome での Windows 7 wamp でのテスト。どんな洞察も大歓迎です!

編集:関連する jsfiddle。親 div をクリックするとアラートが表示されますが、[Read about it] をクリックしても何も表示されません。

4

1 に答える 1

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);
}​
于 2012-08-09T17:31:54.537 に答える