0

私は次のdivを持っています:

<div class="test0 clickable">
   <div class="test1 clickable">
      <div class="test2 clickable">Click me</div>
   </div>
</div>

「test2」をクリックすると、div test2 が dom から削除され、その後、div test1 が削除されます。IE8 と IE9 を除くすべての主要なブラウザーで動作します。

JavaScript は次のとおりです。

$(".clickable").click(function(event){ 
  //if (some event condition)
     $(this).remove();
});

「イベント」オブジェクトの条件に基づいて両方のdivが削除されるように、クリックイベントがtest2からtest1にバブリングしていることを保証するにはどうすればよいですか?

4

3 に答える 3

1

セレクターと一致する場合は、親を明示的に削除してみてください。

$(".clickable").click(function(){ 
    $(this).remove();
    if ( $(this).parent().hasClass('clickable') ) $(this).parent().remove();
});
于 2013-05-06T18:17:01.497 に答える
0

IE では、標準化されたイベント フローの実装に問題があるようです。ただし、ノードの削除を延期することで、これを簡単に回避できます。

$(".clickable").click(function(event){
    var toremove = this;
    if (/*some event condition*/)
        setTimeout(function(){
            $(toremove).remove();
        }, 0);
});
于 2013-05-07T16:00:13.290 に答える
0

stopPropagation を使用する

$(".clickable").click(function(event){ 
      event.stopPropagation();
      $(this).remove();
});
于 2013-05-06T18:12:42.110 に答える