So having this next following code:
var obj = $("#search_input").autocomplete({
minLength: 2,
source: function(req, add) {
$.getJSON("do.php", { OP: "news_search", category: cat_id, get: req }, function(results){
var suggestions = [];
$.each(results, function(i, val){
suggestions.push(val)
});
add(suggestions);
});
},
select: function(event, ui){
console.log(ui);
$("#search_input").val(ui.item.label).attr('data-target', ui.item.value);
return false;
}
}).data("autocomplete");
obj && (obj._renderItem = function(ul, item) {
console.log(item);
return $("<li></li>")
.data("item.autocomplete", item)
.append('<p class="autocomplete-list"><img src="'+item.icon+'" alt="Icono Noticia" /> <a>'+ item.label+'</a></div><div class="clearfix"></div><hr size="1"/>')
.appendTo(ul);
});
As you can see, I am trying to achieve a custom autocomplete result list and by that I mean that on the left of the result list I want to display a photo related with the result, and on the right the text. On click/select it is supposed to set the input field with an extra field data-target
where it should contain the article id.
The problem is that I can't get the select
to work, I keep getting: d.item is undefined
in firebug's console.
Any suggestions?
BTW, I use the var obj = $(...).data("autocomplete");
as it was suggested and accepted on a similar question on stackoverflow, but for me it doesn't work.
No comments:
Post a Comment