我的自动填充脚本存在问题。除IE8外,它在任何地方都能正常工当列表很大时,整个页面都没有响应,IE8中的CPU使用率几乎达到100%。
_renderItem = function(ul, item) {
var html = "";
if (item.NoDataFound) {
html = "No data found";
} else {
if (textField.val() != "") {
html = item.DisplayName.replace(new RegExp("(" + preg_quote(textField.val()) + ")", 'gi'), "<strong>$1</strong>"); // suggest message & Highlight matching part
} else {
html = item.DisplayName;
}
}
return $("<li><a>" + html + "</a></li>")
.data("item.autocomplete", item)
.appendTo(ul);
};
问题可能是appendTo(ul)行,它会将每个项目单独附加到ul。例如,当达到最后一个元素时,我能以某种方式仅将整个列表附加一次吗?