カスタムドロップダウンメニューでjQueryオートコンプリートを実装しようとしています。私はdata()._ renderItemメソッド(コメントアウト)でメニューアイテムをカスタマイズすることができますが、これはメニュー "Select"機能を無効にします。 「ラベル」フィールドを使用してメニュー項目をカスタマイズしようとすると、「選択」機能は機能しますが、メニュー項目HTMLは文字列として解釈されます。誰もがこれを達成するためのきれいな方法を提案することができます。カスタムHTMLメニューを実装する際に、jQueryオートコンプリート「選択」機能を無効にする
$("input#selectedInput")
.bind("autocompleteselect", function (event, ui) {
alert("Sel item " + JSON.stringify(ui.item.json));
})
.autocomplete({
appendTo: "#list",
source: function (request, response) {
//alert("success");
$.ajax({
//url: "http://itunes.apple.com/search?term=jack+johnson&entity=musicTrack",
url: "Example REST URL",
dataType: "jsonp",
data: {
featureClass: "P",
style: "full",
maxRows: 12,
name_startsWith: request.term
},
success: function (data) {
response($.map(data.results, function (item) {
itunesJson = item;
return {
label: "<li><img src='" + item.artworkUrl30 + "' alt='no photo'/>" + item.trackName + "</li>",
}
}));
},
});
}
})
/*
.data("autocomplete")._renderItem = function(ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<img src='"+item.value+"' alt='no photo'/>"+ item.label)
.appendTo(ul);
};
*/
実際には、カスタムオートコンプリートが機能するためには、LIのルートノードとしてアンカータグが必要です。 – kamasheto