0

内部にいくつかのdivがあるテーブルがあります。

td 要素をクリックしたときにイベントが発生するようにしたいのですが、div 要素をクリックしたときにもイベントが発生するようにします。このフィドルhttp://jsfiddle.net/rkGkp/1/でわかるように、私の問題は、div 要素をクリックすると、div と td イベントの両方がトリガーされることですが、div のイベントのみをトリガーすることです。 .

これらのイベントリスナーを使用します

$(function() {
    $("#div").on("click", function() {
        alert("a div is clicked");
    });
});
$(function() {
    $(".td").on("click", function() {
        alert("a td is clicked");
    });
});

div の背後にある要素がイベントをトリガーしないようにするにはどうすればよいですか?

4

2 に答える 2

3

ここを見てください:フィドル

使ったstopPropagation()

コード

$("#div").on("click", function(event) {
    event.stopPropagation();
    alert("a div is clicked");
});
于 2013-10-19T15:36:35.127 に答える
-1

これは、必要なものを達成するための最も簡単な方法です。クリック ターゲットが div にあるかどうかを確認するだけです。

$(function() {
   $("#div").on("click", function() {
       alert("a div is clicked");
   });
});
$(function() {
   $(".td").on("click", function(e) {
      if(!$(e.target).is("#div")){
        alert("a td is clicked");
      }
   });
});
于 2013-10-19T15:42:22.333 に答える