多くの要素にバインドされたクリック機能があります。場合によっては、これらの要素が相互に収まっている可能性があります。そのため、クリック イベントは子にバインドされ、その親にもバインドされます。メソッドは、クリックされた要素に固有です。当然のことながら、イベントのバブリングにより、子のイベントが最初に発生し、次に親のイベントが発生します。親のイベントが子のイベントを上書きするため、両方を同時に呼び出すことはできません。したがってevent.stopPropagation()
、クリックされた最初の要素のみがイベントを受け取るように使用できます。問題は、他のクリック イベントも要素に関連付けられていることです。たとえば、これらの要素で jQuery のドラッグ可能オブジェクトを使用しています。クリック イベントの伝播を停止すると、ドラッグ可能は機能せず、次のクリック イベントは呼び出されません。
だから私の質問は:イベント全体ではなく、イベントが呼び出すメソッドのイベントバブリングを停止する方法はありますか?
素晴らしいジョンですが、ここに問題があります。
<div id="Elm1"><!-- relative -->
<div class="Elmchildren"></div><!-- absolute-->
<div class="Elmchildren"></div><!-- absolute-->
<div class="Elmchildren"></div><!-- absolute-->
<div id="Elm2"><!-- relative -->
<div class="Elmchildren"></div><!-- absolute-->
<div class="Elmchildren"></div><!-- absolute-->
<div class="Elmchildren"></div><!-- absolute-->
</div>
</div>
クリック イベントは と にバインドされ#Elm1
ます#Elm2
。.Elmchildren
幅と高さは 100% です。つまり、彼らは実際に現在のターゲットです。