サーバーからJSONデータをダウンロードし、新しいテーブル行(のような$('<tr></tr')
)を作成してドキュメントに挿入するJavaScriptを維持するようになりました。
a
ノードは、ある時点で次のように作成されます。
var a = $('<a class="foo" href="#"></a>');
その後、イベントは次のようにバインドされます。
a.click(function () {
// yadda yadda
return false;
});
唯一の問題は、これが機能していないように見えることです。バインディングスルーon()
も非推奨でもありませんlive()
。ハンドラーは単に「無視」され、起動せず、ページが一番上にスクロールします(のためにhref="#"
)。イベントをバインドするとき、要素はすでにappend
DOMに編集されています。どんな助けでも大歓迎です。
頭に浮かぶいくつかのコンテキスト情報:要素はデータを反復処理するループ内で作成されますが、JavaScriptでスコープが実際に奇妙なことをしている場合を除いて、問題にはなりません。さらに、要素で試した他のすべてが機能します。コンテンツ、スタイルを変更できますが、イベントバインディングのみが機能しません。そしてもちろん、jQueryのバージョンは1.8.3です。