子アンカーのクリック イベントが親のクリック イベントをトリガーしないようにする
コードが示すように、子アンカー要素が親 div 内でクリックされると、 onclick イベントでは、両方のイベントが発生します。この問題を解決し、親クリック イベントが実行されないようにするには、次の 2 つのオプションがあります。
オプション 1: イベントの起源を確認する
jQuery によって渡されたeventargs オブジェクトを調べることによってをクリックすると、クリックを開始した要素を特定できます:
$("#clickable").click(function(e) { if($(e.target).is("div")) { window.location = url; return true; } });
sender 要素が div 自体ではない場合、 div の onclick ハンドラーはトリガーされません。
オプション 2: イベントのバブリングを停止する
または、子アンカーの stopPropagation() メソッド:
$("#clickable a").click(function(e) { // Custom anchor handler e.stopPropagation(); });
このメソッドは、イベントが親 div に伝播されるのを防ぎ、アンカー クリック イベントのみが確実に発生するようにします。
以上が子アンカーのクリックが親のクリックイベントをトリガーしないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。