2

内部にいくつかのリンクを含む大きな div があります。大きな div をクリック可能にし、内部にもリンクを配置したいのですが、これを行いました:

html :

<div class="clickable">
  some text...
  <a href="myurl1">Link 1</a>
  <a href="myurl2">Link 2</a>
  some text...
</div>

jquery :

$('.clickable').click(function() {
   alert('Hello');
});

クリック可能な div 内のリンクをクリックすると、最初に「Hello」アラートが表示され、次に新しいページが読み込まれます。外側の div クリック ハンドラーをトリガーせずにアンカーを機能させることは可能ですか?

4

1 に答える 1

4

次のコードを追加します。

$('a').click(function(event) {
    event.stopPropagation();
});

ここで動作することがわかります: http://jsfiddle.net/wPymp/

このコードは単純な方法で機能します。.event.stopPropagation()イベントが DOM 全体に上向きに伝搬されないようにし、祖先要素のハンドラーをトリガーします。

于 2010-06-18T17:48:42.373 に答える