1. ホーム
  2. jquery

[解決済み] jQuery: クリック機能で子供を除外する。

2022-04-28 23:11:34

質問

jQuery の ".not() " 関数を理解しようとしているところですが、問題にぶつかりました。親 div を "clickable" にしたいのですが、ユーザーが子要素をクリックしても、スクリプトは呼び出されないのです。

$(this).not(children()).click(function(){
   $(".example").fadeOut("fast");
});

htmlのことです。

<div class="example">
   <div>
      <p>This content is not affected by clicks.</p>
   </div>
</div>

解決方法は?

これを行うには、子プロセスのクリックを停止します。 .stopPropagationを使って :

$(".example").click(function(){
  $(this).fadeOut("fast");
}).children().click(function(e) {
  return false;
});

これは、子クリックがそのレベルを超えてバブリングするのを止めるので、親はクリックを受け取ることができません。

.not() は少し違った使い方をします。例えば、セレクタから要素をフィルタリングします。

<div class="bob" id="myID"></div>
<div class="bob"></div>

$(".bob").not("#myID"); //removes the element with myID

クリックの場合、あなたの問題は をクリックすると、親にバブリングされます。 クリックハンドラを子機につけてしまったのではありません。