这很奇怪。
$.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中的Uncaught TypeError: Cannot read property 'data' of undefined
,其代码如下
_renderItemData: function( ul, item ) {
return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
},
我想要做的是添加&#34;预选&#34;类自动完成下拉列表中的-li-项目。我坚持这个......
答案 0 :(得分:1)
如果_renderItem
条件为false,undefined
函数将返回(item.checked)
。它可能只需要一个else
块:
// ...
._renderItem = function (ul, item) {
if (item.checked) {
return $("<li>")
.text(item.label)
.addClass('preselected')
.appendTo(ul);
}
// else
return $("<li>").appendTo(ul);
};