Upgrading from jquery 1.8.2 to 1.11.2 will raise the following error :- "JavaScript runtime error: Unable to set property '_renderItem'
Upgrading from jquery 1.8.2 to 1.11.2 will raise the following error :- "JavaScript runtime error: Unable to set property '_renderItem'
我正在开发一个 asp.net mvc web 应用程序,我曾经有 jQuery 1.8.2 和 jquery-ui 1.8.2 及以下版本脚本运行良好:-
$("input[data-autocomplete-source]").each(function () {
var target = $(this);
target.autocomplete({
source: target.attr("data-autocomplete-source"), minLength: 1, delay: 1000,
create: function () {
$(this).data("autocomplete")._renderItem = function (ul, item) {
if (!item.extra)
{
return $('<li>').data('item.autocomplete', item).append('<a>' + '<b>' + item.label + '</b></a>')
.appendTo(ul);
}
return $('<li>').data('item.autocomplete', item).append('<a>' + '<b>' + item.label + '</b> "<span class="autocompleteResult">' + item.status + ' <li class=" icon-arrow-right"></li> ' + item.techtype + '</span>"<br>' + '<span class="autocompleteResult">' + item.resourcename + '<span class="autocompleteResultSeperator"> | </span>' + item.customername + '<span class="autocompleteResultSeperator"> | </span>' + item.sitename + '<hr style="padding: 0px; margin: 0px;">' + '</span></a>')
.appendTo(ul);
};
}
});
});
但现在我已经将 jquery 从 1.8.2 升级到 1.11.2,并且我开始收到以下异常:-
0x800a138f - JavaScript runtime error: Unable to set property
'_renderItem' of undefined or null reference
任何人都可以建议吗?
升级后,您应该使用 $(this).data("ui-autocomplete")
检索实例小部件,而不是 $(this).data("autocomplete")
。换句话说,必须在小部件名称中使用 ui-
前缀。
或者,可以使用 instance
方法,如下所示:
$(this).autocomplete('instance')._renderItem = //...
我正在开发一个 asp.net mvc web 应用程序,我曾经有 jQuery 1.8.2 和 jquery-ui 1.8.2 及以下版本脚本运行良好:-
$("input[data-autocomplete-source]").each(function () {
var target = $(this);
target.autocomplete({
source: target.attr("data-autocomplete-source"), minLength: 1, delay: 1000,
create: function () {
$(this).data("autocomplete")._renderItem = function (ul, item) {
if (!item.extra)
{
return $('<li>').data('item.autocomplete', item).append('<a>' + '<b>' + item.label + '</b></a>')
.appendTo(ul);
}
return $('<li>').data('item.autocomplete', item).append('<a>' + '<b>' + item.label + '</b> "<span class="autocompleteResult">' + item.status + ' <li class=" icon-arrow-right"></li> ' + item.techtype + '</span>"<br>' + '<span class="autocompleteResult">' + item.resourcename + '<span class="autocompleteResultSeperator"> | </span>' + item.customername + '<span class="autocompleteResultSeperator"> | </span>' + item.sitename + '<hr style="padding: 0px; margin: 0px;">' + '</span></a>')
.appendTo(ul);
};
}
});
});
但现在我已经将 jquery 从 1.8.2 升级到 1.11.2,并且我开始收到以下异常:-
0x800a138f - JavaScript runtime error: Unable to set property '_renderItem' of undefined or null reference
任何人都可以建议吗?
升级后,您应该使用 $(this).data("ui-autocomplete")
检索实例小部件,而不是 $(this).data("autocomplete")
。换句话说,必须在小部件名称中使用 ui-
前缀。
或者,可以使用 instance
方法,如下所示:
$(this).autocomplete('instance')._renderItem = //...