[解決済み] jQueryのイベントハンドラを削除する最良の方法?
2022-03-17 17:40:34
質問内容
私は
input type="image"
. これは、マイクロソフト・エクセルのセルノートのような役割を果たします。誰かがテキストボックスに数字を入力すると、この
input-image
と対になるイベントハンドラを設定します。
input-image
. そして、ユーザーが
image
そして、データにメモを追加するための小さなポップアップが表示されます。
問題は、ユーザーがテキストボックスにゼロを入力した場合、その時点で
input-image
のイベントハンドラです。以下のように試してみましたが、効果がありません。
$('#myimage').click(function { return false; });
解決方法は?
jQuery ≥ 1.7
jQuery 1.7 以降では、イベント API が更新されました。
.bind()
/
.unbind()
は後方互換性のためにまだ利用可能ですが、望ましい方法は
on()
/
オフ()
関数を使用します。これで下のようになります。
$('#myimage').click(function() { return false; }); // Adds another click event
$('#myimage').off('click');
$('#myimage').on('click.mynamespace', function() { /* Do stuff */ });
$('#myimage').off('click.mynamespace');
jQuery < 1.7
このコード例では、画像に別のクリックイベントを追加しているだけで、前のイベントをオーバーライドしているわけではありません。
$('#myimage').click(function() { return false; }); // Adds another click event
すると、両方のクリックイベントが発生します。
他の人が言っているように、unbindを使用してすべてのクリックイベントを削除することができます。
$('#myimage').unbind('click');
イベントをひとつだけ追加して、それを (他のイベントを削除することなく) 削除したい場合は、イベントの名前空間指定を使用します。
$('#myimage').bind('click.mynamespace', function() { /* Do stuff */ });
で、自分のイベントだけを削除します。
$('#myimage').unbind('click.mynamespace');
関連
-
[解決済み] jquery mobileでページ中央のグリッド表示
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] jQueryでテーブルの行を追加する
-
[解決済み] jQueryで要素にスクロールする
-
[解決済み] jQueryで入力を無効化/有効化する?
-
[解決済み] モバイル端末の検出にはどのような方法がありますか?
-
[解決済み] 動的に生成された要素でクリックイベントが動作しない [duplicate]
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jQueryでリンクを無効化する
-
[解決済み] jQueryでdata属性で要素を選択する
-
[解決済み] jQueryを使用してCSSのdisplay noneまたはblockプロパティを変更するにはどうすればよいですか?
-
[解決済み] jQueryは要素のレンダリングされた高さを取得しますか?
-
[解決済み] jQueryを使用して配列から特定の値を削除する方法
-
[解決済み] jQueryを使用してspanに値を設定する方法
-
[解決済み] jQueryのn番目の要素を取得する方法
-
[解決済み] jQuery append() - 追記された要素を返す
-
[解決済み] Jqueryのコードはヘッダーとフッターのどちらに入れるべきですか?
-
[解決済み] jQueryで<input type="text">のonchangeを実装するには?