2

テーブル内のdivがクリックされると、バブルがtrにクリックされるまでstoppropagationはトリガーされません。divからのバブリングを停止するにはどうすればよいですか?

http://jsfiddle.net/tcbnW/が私の問題を示しています

divがクリックされました!→trがクリックしました!→STOPがトリガーされました

私は欲しい

divがクリックされました!→STOPがトリガーされました

以下のhtmlコード

<table>
    <tr onclick="$('#INFO').append('tr clicked!<BR>');">
        <td>
            <div onclick="$('#INFO').append('div clicked!<BR>');" style="font-weight:bold;" class="STOP">test div</div>
        </td>
    </tr>
</table>
<div id="INFO" style="border:1px solid #F00;"></div>

脚本

$(document).on('click','.STOP',function(event){
       $('#INFO').append('STOP triggered<BR>');
       event.stopPropagation();
       });

jquery1.9を使用する

4

2 に答える 2

2

jQueryのように、 「従来の」イベント処理(onfoo HTML属性)と「最新の」イベント処理(addEventListenerなどを使用)を混在させないでください。予期しない結果が発生する可能性があります。

于 2013-03-22T16:21:27.287 に答える
1

divからonclickイベントを削除してみてください。基本的に、同じイベントに対して2つのリスナーがあります。1つはonclick内に埋め込まれ、2つ目は$(document).onです。

これを見てください:[リンク] http://jsfiddle.net/tcbnW/1/。これは1つの追加です

event.stopImmediatePropagation();

これでうまくいくと思います。

于 2013-03-22T16:09:02.127 に答える