div に生成されたボタンからイベントをキャプチャしようとしています (別の jQuery 呼び出しによって供給されます)。jQuery 呼び出しはどこにあるのだろうか? メインページまたは以前の jQuery 呼び出しから生成された html に移動しますか?
また、jQuery は同じ名前のオブジェクトをどのように処理するのでしょうか?
ありがとう!
現在または将来終了するオブジェクトを操作している場合は、 live 関数を使用してイベントを添付する必要があります。
説明: 現在および将来において、現在のセレクターに一致するすべての要素のイベント ハンドラーをアタッチします。
セレクターに一致するオブジェクトが複数ある場合は、オブジェクトの配列を取得します
jsFiddleを使用して例を作成します。現時点で問題が何であるかを判断するのは困難です。
最初の質問に答えるには、タスクに応じて、「メイン ページ」と「生成された html」の両方にイベントを登録できます。また、コード/例がないため、どちらが優れているかはわかりません。
質問「jQuery は同じ名前のオブジェクトをどのように処理しますか?」本当に意味がありません。JQuery は JavaScript ライブラリであり、JavaScript は他のプログラミング言語と同様に、オブジェクトごとに一意の名前を持っています。要素のクラス名を意味していたのかもしれませんが、jQuery はそれらを要素のコレクションとして扱います。
まだ存在しないコンテンツにイベントをバインドする場合は、生成された html 内に配置できます。
そのようです :
$("#generatedButton").on("click",function(){
//do something..
});
また
メインページに配置し、イベントを既に存在するより高いラッパーにバインドし、イベントターゲットを個別に指定できます
そのようです :
$("#mainWrapper").on("click", "#generatedButton" , function(){
//do something..
});
そのすべてを使用して.on()
。