第2のリスナーは最初のリスナーを上書きしません。 jQueryイベントハンドラは、累積的に追加され、添付された順序で実行されます。
1つのハンドラは、他の実行を防止するかどうか効果がないものは機能がブラウザのデフォルトのクリックハンドラをキャンセルする方法である(つまり、あなたがリンクのURL以下のブラウザを停止する方法)
あなたは伝統的な方法で使用する場合:
を
$(element).on('click', function() {
/* Some Stuff, do your thing */
return false;
});
上記のハンドラはイベント自体を停止し、他のハンドラに伝播します。
しかし、あなたはその伝播またはハンドラを停止することなく、イベントのアクションを停止することができます:
$(element).on('click', function(e) {
// prevent the default action at first, just to make it clear :)
e.preventDefault();
/* do your thing */
return /* what you want */;
});
これはデフォルトのクリックアクションが発生しないことが保証されますが、イベントは、他のhanldersし続けていること。 jQueryイベントには、他にも便利なものがあります。event propagation methods(例:Event.stopPropagation()
)は知る価値があります。
はここhttp://stackoverflow.com/questions/891989/javascript-adding-an-onclick-handler-without-overwriting-the-existing-one –
なぜdownvotesを見てみましょうか?問題ははっきりと簡潔です。 –
Lol、私は盲目的にコードを書かずに、これが当てはまるかどうかわからない。もっと理にかなって私の質問を編集しました。 – trusktr