0

我的自动完成脚本有问题。除了 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 。例如,当到达最后一个元素时,我可以以某种方式仅将整个列表附加一次吗?

4

0 回答 0