2012-01-09 10 views
3

jQueryのクリックイベントがリンクされたアンカータグがあります。クリックイベントでアンカーを無効にする

このクリックイベントが最初に行うことは、disabled属性をtrueに設定することによって、アンカーを無効に設定することです。これは、スタイルシートからmyAnchor[disabled]スタイルを取得するため、正しい外観を生成します。

ただし、アンカーが無効になっている間にClickイベントがさらに発生することはありません。私はこれが無効な属性はアンカーではない入力(私はこれを試した後に分かったように)でのみ動作するためだと思います。

このコードはアプリケーション内の多くのアンカーに一般的です。したがって、Clickイベント自体にコードを追加することは望ましくありません。すべてのClickメソッドにこのコードをコピーする必要があります。必要なコードで関数を作成したとしても、私が(あるいは悪いことに気づいていないかもしれない他の開発者が)この行をすべてのClickメソッドの中に置くことを覚えなければならないことを意味します。

アンカーがおそらくもう一度有効になることを忘れないでください。クリックイベントを削除することはできません。有効にすると、clickメソッドに加えて他の場所の機能を追跡する必要があります。

アンカーを無効にする正しい方法は何ですか。

答えて

5

次のいずれかを行うことができます。

$('a').click(function() { return false; }); 

$('a').off('click'); 

$("a").unbind("click"); 
+2

2番目の2つは、以前に 'on()'または 'bind()'を使ってイベントが以前にアタッチされていた場合にのみ機能します。 – Purag

+1

['.one()'](http://api.jquery.com/one/)APIを使うこともできます。しかし、あなたの答えがOPの質問を解決するかどうかわからない – JMax

関連する問題