入力要素にバインドされたjQueryUIオートコンプリートと、オートコンプリートボックス内のアイテムのカスタム表示があります。<hr />
各アイテムには複数の行があり、たとえば要素を使用して、アイテムを互いに明確に分離したいと思います。<hr />
以下は機能しますが、最後のアイテムの後に要素をレンダリングします。
$(function () {
$("#Customer").autocomplete({
source: "/SomePath/SearchCustomers?term=ABC",
select: function (event, ui) {
$("#CustomerId").val(ui.item.customerId);
return false;
}
})
.data("autocomplete")._renderItem = function (ul, item) {
var renderedItem = $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.customerId + ", " + item.name + "<br />"
+ item.addressLine1 + "<br />"
+ item.countryCode + ", " + item.city + "</a>");
// if (IsNotTheLastItem(item)) <-- Is something like this possible?
renderedItem = renderedItem.append("<hr />");
renderedItem = renderedItem.appendTo(ul);
return renderedItem;
};
});
(コードは次の例から派生しています:http://jqueryui.com/demos/autocomplete/#custom-data([ソースの表示]をクリックします))
レンダリングしようとしているアイテムが最後のアイテムであるかどうかを判断することはできますか(上のコメント行に示されているように)?または、アイテム間にセパレータを追加するが、最後のアイテムの後に追加しない代替手段はありますか?