ホームページ > ウェブフロントエンド > jsチュートリアル > 子アンカーがクリックされたときに親のクリックイベントが発生しないようにするにはどうすればよいですか?

子アンカーがクリックされたときに親のクリックイベントが発生しないようにするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-08 19:05:13
オリジナル
708 人が閲覧しました

How to Prevent Parent Click Events from Firing When a Child Anchor is Clicked?

子アンカーのクリックによる親イベントのトリガーの防止

Web プログラミングでは、多くの場合、クリック可能な要素を他のクリック可能な要素内にネストする必要があります。ただし、クリック可能な親要素内でアンカー要素 (「a」タグ) をクリックすると、両方のクリック イベントが発生し、望ましくない動作が発生する可能性があります。

問題の定義:

目標は、アンカーの子がクリックされたときに親要素の onclick イベントがトリガーされないようにすることです。これにより、アンカーの意図したアクションのみが確実に実行されます。

解決策 1: イベントの起源を確認する

jQuery は、イベントの起源に関する情報を含む 'eventargs' オブジェクトを提供します。親要素の onclick ハンドラー内のeventargs をチェックすることで、クリックがアンカーから発生したかどうかを判断できます。

$("#clickable").click(function(e) {
    if($(e.target).is("div")) {
        window.location = url;
        return true;
    }
});
ログイン後にコピー

このコードでは、イベントのターゲットが「div」要素であるかどうかを確認します。その場合、親のアクション (特定の URL へのリダイレクト) をトリガーします。

解決策 2: イベント バブリングの停止

イベント バブリングとは、イベントのバブリングを指します。 DOM ツリー。アンカーにクリック ハンドラーを追加し、その中で 'e.stopPropagation()' を呼び出すことで、イベントが親要素にバブルアップするのを防ぐことができます。

$("#clickable a").click(function(e) {
   // Do something
   e.stopPropagation();
});
ログイン後にコピー

このアプローチでは、イベントの続行が即座に停止されます。 DOM 内での上向きの移動を実行し、アンカーのアクションのみが実行されるようにします。

以上が子アンカーがクリックされたときに親のクリックイベントが発生しないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート