这很奇怪。
$.fn.autoList = function () {
return this.each(function () {
var self = this;
// initiate autocomplete
$(self).autocomplete({
source: _li_data,
minLength: 2,
select: function (event, ui) {
ui.item.checkbox.prop('checked', true).trigger('change');
ui.item.checked = !ui.item.checked;
$(event.target).val('');
return false;
}
})
.data('autocomplete')._renderItem = function (ul, item) {
if (item.checked) {
return $("<li>")
.text(item.label)
.addClass('preselected')
.appendTo(ul);
}
};
});}
当输入时,在结果应该呈现之前,我收到以下错误。 未捕获的类型错误:无法读取 jquery-ui-1.9.0.js:6672 中未定义的属性“数据”
,其代码如下
_renderItemData: function( ul, item ) {
return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
},
我想要做的是将“预选”类添加到自动完成下拉列表的 -ul- 中的 -li- 项中。我被这个问题困住了......
最佳答案
如果 (item.checked)
条件为 false,_renderItem
函数将返回 undefined
。它可能只需要一个 else
block :
// ...
._renderItem = function (ul, item) {
if (item.checked) {
return $("<li>")
.text(item.label)
.addClass('preselected')
.appendTo(ul);
}
// else
return $("<li>").appendTo(ul);
};
关于javascript - jQuery UI 自动完成缺少 _renderItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29028971/