明快は.getJSONを(使用して作成したコンテンツにイベントハンドラを追加することはできません)
のために編集された質問私は$.getJSON()
方法を使用して、AJAX呼び出しを行い、コールバック関数内のページにいくつかの要素を追加します。
$.getJSON("pathToFile/file.json", function(data) {
$.each(data.lst, function(i, item) { /* Add HTML elements to the page.. */ });
});
それすべて正しく表示されますが、私は要素のために追加したイベントハンドラは動作しません:
$(".newElement").on("click", "input", function() {
alert("Something happened..");
});
入力要素をクリックしても何も起こりません。私は何が欠けていますか?既存の要素にイベントハンドラをバインドする必要が
説明
@jbabeyが親切に指摘したように、the documentation for .on()状態。イベントハンドラの適用時に要素が存在しないため、コードは機能しません。
どこ '.on()'のコードを追加したのですか?要素が追加された後でなければなりません。 –
このコードは間違いなく改良することができます。新しいコンテンツを返さずに '.html()'にコールバックを渡すことは意味がありません。私はあなたがHTML文字列でよりもDOM要素でもっと仕事をすることをお勧めします。これにより、物事がより明確になります。 –
複数行の文字列設定は、新しいブラウザでも機能しますか?私はそうすると思います。 – Pointy