[解決済み] $(document).on("click")...not working?
2023-03-01 20:13:52
質問
よくある間違いはないでしょうか?
要素が動的に生成されるため、.on() を使用しているスクリプトがありますが、動作していません。 試しに、セレクタを静的な動的要素のラップに置き換えてみましたが、まだ動作しませんでした! ラップを古い .click に切り替えたら動きましたが。
(これは明らかに動的要素では動作しません。重要なのはこれです。)
これは動作します。
$("#test-element").click(function() {
alert("click");
});
これはない。
$(document).on("click","#test-element",function() {
alert("click");
});
UPDATEです。
右クリックして、Chrome で "Inspect Element" をして、何かを再確認した後、クリックイベントが動作しました。 リフレッシュしても動作せず、要素を検査したら、動作しました。 これは何を意味するのでしょうか?
どのように解決するのですか?
id="test-element" を持つ要素のクリックイベントをリッスンするために、ドキュメントにバインドするための正しい構文が使用されています。
おそらく、次のいずれかの理由で動作していません。
- 最近のバージョンのjQueryを使用していない
- DOM ready の内部でコードをラップしていない
- または、イベントがドキュメント上のリスナーにバブルアップされないようなことをしている。
作成された要素に関するイベントを捕捉するために 後に イベントリスナーを宣言した後に作成された要素のイベントを捕捉するには、親要素、または階層内のより高い要素にバインドする必要があります。
例えば
$(document).ready(function() {
// This WILL work because we are listening on the 'document',
// for a click on an element with an ID of #test-element
$(document).on("click","#test-element",function() {
alert("click bound to document listening for #test-element");
});
// This will NOT work because there is no '#test-element' ... yet
$("#test-element").on("click",function() {
alert("click bound directly to #test-element");
});
// Create the dynamic element '#test-element'
$('body').append('<div id="test-element">Click mee</div>');
});
この例では、"bound to document"アラートのみが発火します。
関連
-
[解決済み] 要素外でのクリックを検出するにはどうすればよいですか?
-
[解決済み] このjQueryのクリック機能はなぜ動作しないのでしょうか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] jQueryを使用しない$(document).ready相当
-
[解決済み] window.onload vs $(document).ready()
-
[解決済み] セレクトした要素の外側のHTMLを取得する
-
[解決済み] jQuery に何かを実行する前にすべての画像の読み込みを待つように指示する公式な方法
-
[解決済み] .on('click') と .click() の違いについて
-
[解決済み] jQueryを使用して配列から特定の値を削除する方法
-
[解決済み] デベロッパーツールを使って、Chromeのボタンや要素で実行されるコードを調べる方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Uncaught SyntaxError: 予期しない入力の終了
-
[解決済み] jQueryのpreventDefault()が発動しない
-
[解決済み] jquery 3.0 url.indexOfエラー
-
[解決済み] Google Maps APIでマウスのスクロールホイールによる拡大縮小を無効にする方法
-
[解決済み] 動的に生成された要素でクリックイベントが動作しない [duplicate]
-
[解決済み] jQueryは要素のレンダリングされた高さを取得しますか?
-
[解決済み] jQueryでフォームフィールドをクリアする
-
[解決済み] jQuery セレクタ。Id Ends With?
-
[解決済み] jQuery: テキストで要素を検索する
-
[解決済み] jQueryで、ある要素を他の要素に対して相対的に配置するには?