javascript - 2 つのクリック イベント。大きな DIV には小さな DIV が含まれています。小さな DIV をクリックすると、大きな DIV もトリガーされます。これに対処するにはどうすればよいですか?
某草草2017-05-27 17:44:35
0
8
1321
2 つのクリック イベント、大きな p には小さな p が含まれており、小さな p をクリックすると、大きな p もトリガーされます。 図に示すように、小さな p 内のクリックをクリックすると、大きな p もトリガーされます。ここでは、小さな p のみをクリックすると、小さなクリック イベントのみがトリガーされます。それに対処しますか?
stopPropagation()
オブジェクト上で特定のタイプのイベント (
リーリーonclick
事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true
,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document
对象(有些浏览器是window
をクリックするなど) をトリガーすることは、イベント バブリングと呼ばれます。JSのバブリング(キャプチャ)イベントです
このような解決策は非常に簡単です
リーリーjs のバブリング、バブリングをキャンセルするだけです
イベント委任を使用すると、この問題は発生しません
これら 2 つの記事を読んでも理解できない場合は、私に来てください:
私は 2 つの解決策を考えています:
1. イベントのバブリングを防ぐ。
イベントバブリングは、内側の子要素から外側の親要素まで段階的に実行されます。子要素のクリックイベントを実行する場合、イベントを上位層に渡すことができないように、バブリングブロックイベントを呼び出す必要があります。上位層のイベントを実行します。
2. クリックを引き起こした要素に基づいてさまざまなイベントを実行します。
クリックされた要素が子要素による場合はイベントAが実行され、子要素でない場合はイベントBが実行されます。
この事件の詳細については、こちらを参照してください/a/11...
通常の慣例によれば、このようにトリガーされることはありません。クリックイベントをバインドするために使用するセレクターを知りたいのですが、クリックコードとp
のHTMLコードを投稿した方がよいでしょう。