[解決済み] 動的に作成されたアイテムでjQueryクリックが機能しない [duplicate]
2022-10-25 02:46:42
質問
与えられたdivの各要素をループするjQueryがあります(
#container
) 内の各要素をループし、スパンがクリックされるたびに javascript の警告を表示する jQuery があります。これは
<span>
が静的であれば問題なく動作します。
しかし、次のようなコードにすると
$(someLink).click(function(){
$("#container").html( <new html with new spans> )
});
jQueryのコードが発火しない。しかし、奇妙なことに
私の質問は、: クリックイベントが動的に作成されたアイテムに対して機能しない理由は何でしょうか?私は、イベントをフックするために、ドキュメント レディまたはハートビート スクリプト (100 ミリ秒ごとに起動) に何かを追加する必要があると仮定していますか?
どのように解決するのですか?
こうしてください。
$( '#wrapper' ).on( 'click', 'a', function () { ... });
ここで
#wrapper
は動的リンクを追加する静的要素です。
つまり、HTMLのソースコードにハードコーディングされたラッパーがあるわけです。
<div id="wrapper"></div>
で、それを動的なコンテンツで満たします。このアイデアは、動的要素に直接ハンドラをバインドする代わりに、イベントをラッパーに委譲することです。
私がお勧めするのは バックボーン.js - は、このプロセスに構造を与えてくれます。
var YourThing = Backbone.View.extend({
// the static wrapper (the root for event delegation)
el: $( '#wrapper' ),
// event bindings are defined here
events: {
'click a': 'anchorClicked'
},
// your DOM event handlers
anchorClicked: function () {
// handle click event
}
});
new YourThing; // initializing your thing
関連
-
[解決済み] jQuery の jquery-1.10.2.min.map が 404 (Not Found) を誘発する。
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] 動的に生成された要素にイベントバインディングを行うか?
-
[解決済み] jQueryを使用してハイパーリンクのhref属性を変更する方法
-
[解決済み] jQueryで要素のクラスリストを取得する
-
[解決済み] jQuery チェックボックスの変更とクリックイベント
-
[解決済み] ジェスト あるクラスの特定のメソッドをモックする方法
-
[解決済み] アサインの左側にJavascriptのオブジェクトブラケット表記({ ナビゲーション } =)があります。
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 動的に生成された要素にイベントバインディングを行うか?
-
[解決済み] bootstrap のポップオーバーがすべての要素の上に表示されない
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] Javascriptで動的に命名されたメソッドを呼び出すにはどうすればよいですか?
-
[解決済み] jqueryはjavascriptのライブラリなのかフレームワークなのか?[クローズド]
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?