ループがあります:
for (index = 0; index < total_groups; index += 1) {
groups[index].list_item = $(list_item_snippet);
// Closure to bind the index for event handling
(function (new_index) {
groups[index].list_item.find('.listing-group-title')
.html(groups[index].Group.Name)
.click(function(e){
fns.manageActiveGroup(new_index, groups);
return false;
});
})(index);
// Append to DOM
mkp.$group_listing.append(groups[index].list_item);
};
append()
ループが発生するたびに電話をかけたくありません。
文字列を使用して、ループの反復ごとにマークアップを連結し、最後に文字列を追加できることはわかっていますが、mkp.$group_listing
これによりオブジェクトがフラットになり、バインディングが失われます(IDに依存していません)。
おそらく私のオブジェクトを配列に追加し、HTMLにフラット化せずにそれらをすべて一度に下部に追加する方法はありますか?
仮定:
$(list_item_snippet)
リストアイテムを定義するHTMLが含まれています(クラスを持つ要素が含まれています.listing-group-title
)。groups
スクリプトで「グループ」を定義するJSONのブロックです- クロージャーは完璧に機能します
編集:
次の構文を使用して複数の要素を追加できることがわかりました。
mkp.$group_listing.append(groups[0].list_item, groups[1].list_item );
しかし、私は明らかにそれを自動化する必要があります-それは配列ではなく、単なるオプションの追加関数パラメーターであるため、これを行う方法がわかりません。