1

ユーザーが子または div をクリックしたときにクリック イベントが発生しないようにしようとしています。

私は持っている

<div class='test'>
   <div class='click1'>
     test 1

    </div>
   <div class='click1'>
     test 2

    </div>

   <div class='click1'>
     test 3

    </div>

</div>

私のjquery

  $('.test').click(function(e){

      e.stopPropagation(); //doesn't work
     alert('click!')

  })

クリック イベントを .test div に登録する必要があり、ユーザーが子 div をクリックしたときにアラートが表示されないようにします。

とにかくこれを行うことはありますか?どうもありがとう!

4

3 に答える 3

2
$('.test').on('click', '*', function(e){
  e.stopPropagation();
});

デモ: http://jsfiddle.net/rD2ua/

編集

$('.test').children().bind('click', function(e){
  e.stopPropagation();
});

子要素に直接バインドできます

デモ: http://jsfiddle.net/rD2ua/1/

于 2012-11-27T00:30:50.310 に答える
2

アップデート:

$('.test').click(function(e){
     if (e.target.className == 'click1') {
         return false;
     }
})

実際のデモ: http://jsfiddle.net/drDMK/

またはこれでも:

$('.test').click(function(e){
     if (e.target.className != 'test') {
         return false;
     }
})

実際のデモ: http://jsfiddle.net/drDMK/1/

于 2012-11-27T00:30:57.267 に答える
1

子レベル (「click1」) でクリック イベントをトラップし、そこで伝播を停止する必要があります。親 ('test') に UP を伝搬しています。

于 2012-11-27T00:41:06.060 に答える