2
<div id="firstDiv" style="width:1000px;height:600px;">
    <div id="secondDiv" style="width:200px;height:200px;"></div>
</div>

どちらの DIV にも click() イベントがあります。secondDiv をクリックすると、firstDiv のクリック イベントも発生します (firstDiv の境界線内もクリックしたので、これはロジックだと思います)。ただし、クリック時に実際にマウスを置いたDIVのクリックイベントのみを発生させたいと考えています。

どうすればそれを達成できますか?

4

5 に答える 5

5

DOM 要素は、デフォルトでイベントをバブルアップします。stopPropagation を使用して停止できます

$('#secondDiv').on('click', function(e){
    e.stopPropagation();
});
于 2013-04-23T20:36:12.620 に答える
1

event.stopPropagation()イベントが親要素にバブリングするのを防ぐために使用する必要があります(あなたの場合)。有望にpreventDefault見えますが、実際にはデフォルトのアクションを防ぎます-バブリングではありません。

$("#firstDiv").click(function() {
  alert("Div One");
});

$("#secondDiv").click(function(e) {
  e.stopPropagation();
  alert("Div Two");
});

両方のデモはこちら

于 2013-04-23T20:37:44.967 に答える
1

あなたはこれを行うことができます-

$('#secondDiv').click(function(event) {
    // do your stuff
    return false;
 });

return false;event.stopPropagation()event.preventDefault()

于 2013-04-23T20:36:56.873 に答える
0

event.stopPropagation()この泡立ちに使えます。このようなもの:

$("secondDiv").click(function(event) {
  event.stopPropagation();
   //Write your logic here
});

詳細については、こちらのドキュメントを参照してください。

于 2013-04-23T20:37:10.190 に答える