无法多次覆盖jQuery UI自动完成渲染方法
它在找到的第一个自动完成中正确覆盖,但对其余的不做任何操作。 相反,它加载原始的_renderitem方法,您可以在中看到该方法无法多次覆盖jQuery UI自动完成渲染方法,jquery,jquery-ui,jquery-autocomplete,jquery-ui-autocomplete,Jquery,Jquery Ui,Jquery Autocomplete,Jquery Ui Autocomplete,它在找到的第一个自动完成中正确覆盖,但对其余的不做任何操作。 相反,它加载原始的_renderitem方法,您可以在中看到该方法 提前感谢此问题有一个解决方法: var autoc = { delay: 500, minLength: 2, source: path, ..... }; var renderItem = function (ul, item) { return $("<li></li>") .
提前感谢此问题有一个解决方法:
var autoc = {
delay: 500,
minLength: 2,
source: path,
.....
};
var renderItem = function (ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.label + "<br/>" + item.desc + "</a>")
.appendTo(ul);
};
$(".someClassWithMultipleItemsOnDOM").each(function (i) {
$(this).autocomplete(autoc).data("autocomplete")._renderItem = renderItem;
}
var autoc={
延误:500,
最小长度:2,
资料来源:路径,
.....
};
var renderItem=功能(ul,项目){
返回$(“”)
.data(“item.autocomplete”,item)
.append(“+item.label+”
“+item.desc+”)
.附录(ul);
};
$(“.someClassWithMultipleItemsOnDOM”).each(函数(i){
$(this).autocomplete(autoc).data(“autocomplete”)。\u renderItem=renderItem;
}
您可以覆盖renderItem
$.ui.autocomplete.prototype._renderItem = function (ul, item) { ... };
这是一个。显然,要使这个例子起作用,你必须去掉“…..”和最后一个逗号。@tomc-你刚刚为我节省了几个小时的额外工作。
jqueryui
的人现在需要一个解决方法来解决多个自动完成元素吗?建议这样做?这是一种方法。不推荐也不推荐。
$.ui.autocomplete.prototype._renderItem = function (ul, item) { ... };