jQuery UI 自动完成缺少 _renderItem
jQuery UI autocomplete missing _renderItem
这很奇怪。
$.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);
}
};
});}
在输入时和结果应该呈现之前,我收到以下错误。 Uncaught TypeError: Cannot read property 'data' of undefined
in jquery-ui-1.9.0.js:6672 其中有以下代码
_renderItemData: function( ul, item ) {
return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
},
我想做的是将 "preselected" class 添加到自动完成下拉列表的 -ul- 中的 -li- 项。我被这个困住了...
如果 (item.checked)
条件为假,_renderItem
函数将 return undefined
。它可能只需要一个 else
块:
// ...
._renderItem = function (ul, item) {
if (item.checked) {
return $("<li>")
.text(item.label)
.addClass('preselected')
.appendTo(ul);
}
// else
return $("<li>").appendTo(ul);
};
这很奇怪。
$.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);
}
};
});}
在输入时和结果应该呈现之前,我收到以下错误。 Uncaught TypeError: Cannot read property 'data' of undefined
in jquery-ui-1.9.0.js:6672 其中有以下代码
_renderItemData: function( ul, item ) {
return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
},
我想做的是将 "preselected" class 添加到自动完成下拉列表的 -ul- 中的 -li- 项。我被这个困住了...
如果 (item.checked)
条件为假,_renderItem
函数将 return undefined
。它可能只需要一个 else
块:
// ...
._renderItem = function (ul, item) {
if (item.checked) {
return $("<li>")
.text(item.label)
.addClass('preselected')
.appendTo(ul);
}
// else
return $("<li>").appendTo(ul);
};