[解決済み] jQueryを使用して、すべてのクリックイベントハンドラを削除するにはどうすればよいですか?
2022-07-23 08:16:57
質問
問題が発生しました。基本的に、ユーザーがページ上の「編集」リンクをクリックすると、以下のJqueryコードが実行されます。
$("#saveBtn").click(function () {
saveQuestion(id);
});
このようにすることで、保存ボタンのonClickイベントから
saveQuestion()
メソッドを呼び出し、'Edit'リンクがクリックされた質問のIDを渡します。
しかし、同じセッションにおいて、ユーザーが2つの質問で編集をクリックした場合、以前の
click
イベントハンドラを上書きする代わりに、2つのイベントハンドラが実行され、そのうちの1つは
saveQuestion(1)
を呼び出し、もう一方は
saveQuestion(2)
. このようにすることで、1つの質問が他の質問を上書きします。
以前のすべての
click
イベントを削除する方法はありますか?
どのように解決するのですか?
あなたは off() を使って、このようにイベントを削除します。
$("#saveBtn").off("click");
を削除しますが、これによって すべてのクリックイベント を削除します。もし、SaveQuestionの関数が結合された唯一のイベントであれば、上記はそれを行います。そうでない場合は、次のようにしてください。
$("#saveBtn").off("click").click(function() { saveQuestion(id); });
関連
-
[解決済み] 要素外でのクリックを検出するにはどうすればよいですか?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] jQueryでページを更新するにはどうすればよいですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] ドット記法の文字列を使用してオブジェクトの子プロパティにアクセスする [重複].
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] bootstrap のポップオーバーがすべての要素の上に表示されない
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] ECMAScriptとは?
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] <noscript> の反対語のHTMLはありますか?
-
[解決済み] jQuery scroll() は、ユーザーがスクロールを止めたことを検出する。