リンクがページを開くのを防ぎたい。だから私はこれを書いた:
$("a").click(function(e) {
e.preventDefault()
}
素晴らしいです!しかし、これは私の他のイベントをブロックします:
$(".toolbar a").click(function(e) {
...action...
}
何らかのテストで最初のイベントにアクションを追加できますが、onlyhrefイベントの実行を防ぐエレガントな方法はありますか?
[〜#〜] edit [〜#〜]
実際、動作します、すみません。ここで動作する@ raina77owフィドルを参照してください: http://jsfiddle.net/HeFS6/
代わりに_return false
_を使用してください。以下のコードが機能することを確認できます here 。
_$("a").click(function() {
return false;
});
$(".toolbar a").click(function() {
alert("Do something");
});
_
@ raina77owが指すように この記事 で、_return false
_を使用することはevent.preventDefault()
を呼び出すことと同じです。 event.stopPropagation()
も。過去にいくつかのコードで_return false
_なしで問題が発生したため、常に推奨します。
ただし、ここで最も重要なことは、バインド順序です。最後のバインドが最初に実行されるコードになります。だから、気をつけて行ってください。
e.preventDefault()
の代わりに、return false
?これにより、ブラウザのデフォルトの動作も妨げられます。
Hrefイベントはありません。これが、クリック時のデフォルトを防ぐ場合の結果です。より具体的なセレクタを使用する必要があります。