我正在尝试自定义
JQuery 1.8中自动完成元素的外观.
我使用了 JQuery UI website的例子
我使用了 JQuery UI website的例子
$('#term').autocomplete( {source:'index.PHP?/Ajax/SearchUsers',minLength: 3,delay: 300} ).data("ui-autocomplete")._renderItem = function( ul,item ) { return $( "<li>" ) .append( "<a>" + item.label + "<br>" + item.desc + "</a>" ) .appendTo( ul ); };
不幸的是,在JQuery UI 1.8中没有ui-autocomplete数据字段.我在哪里可以修改JQuery UI 1.8中自动完成的模板?
解决方法
jQuery UI站点中的示例基于jQuery UI 1.10,jQuery UI 1.8有点不同,因此您必须更改代码才能使其正常工作.
主要区别在于:
.data("autocomplete")._renderItem = function (ul,item) { return $("<li>") .data("item.autocomplete",item) .append("<a>" + item.label + "<br>" + item.desc + "</a>") .appendTo(ul);
数据(“ui-autocomplete”)必须是数据(“自动完成”),您必须设置数据属性以将其他信息添加到自动完成.
码:
$("#project").autocomplete({ minLength: 0,source: projects,focus: function (event,ui) { $("#project").val(ui.item.label); return false; },select: function (event,ui) { $("#project").val(ui.item.label); $("#project-id").val(ui.item.value); $("#project-description").html(ui.item.desc); $("#project-icon").attr("src","images/" + ui.item.icon); return false; } }) .data("autocomplete")._renderItem = function (ul,item) { return $("<li>") .data("item.autocomplete",item) .append("<a>" + item.label + "<br>" + item.desc + "</a>") .appendTo(ul); };