用户界面- 2000 + jQuery UI自动完成组合框抛出停止响应错误



只是想确认我已经超出了jQuery UI自动完成组合框的实际限制,我在FF中得到以下错误:

此页上的脚本可能正忙,或者它可能已经停止了响应。你现在可以停止脚本,打开脚本在调试器中,或者让脚本继续。

这个页面是一个由php生成的大表(2000+行),它将每行包含7个这样的组合框(7列),但是我几乎不能通过集合的第一列。页面将加载并运行,但需要几分钟,并且浏览器会有一段时间无响应。

是否有可能改变JS使其更有效的方法?下面是JS的一个示例,我使用php将数组插入到脚本中(第3行)。

代码:

            <script type='text/javascript'>
  var input = new Array();
var i = 1;
<?php echo $JSElements; ?> //PHP
$('.TC_1').each(function(index) {
input[i] = $("[name=TC_"+i+"_1]").autocomplete({
    source: elementArray,
    select: function(){alert("selected");},
    minLength: 0
}).addClass("ui-widget ui-widget-content ui-corner-left");
//Get the id for the target field:
    var target = $(input[i]).attr('name');
    var ID = target.substr(3);
$("<button id='bt_"+ID+"' type='button'>&nbsp;</button>")
    .attr("tabIndex", -1)
    .attr("title", "Show All Items")
    .insertAfter(input[i])
    .button({
        icons: {
            primary: "ui-icon-triangle-1-s"
        },
        text: false
    })
    .removeClass("ui-corner-all")
    .addClass("ui-corner-right ui-button-icon")
    .click(function() {
        // close if already visible
        if ($("[name=TC_"+ID+"]").autocomplete("widget").is(":visible")) {
        $("[name=TC_"+ID+"]").autocomplete( "close" );
             return;
        }
        $(this).blur();
        $("[name=TC_"+ID+"]").autocomplete("search", "" );
        $("[name=TC_"+ID+"]").focus();
    });
    i++;
});
  </script>

如果没有办法让这个工作?有人能提出其他的建议吗?请记住,可能会有大约8000个字段!如果没有,我最后的办法是自定义构建一个简单的ajax下拉菜单。

当前版本的jQuery自动完成插件实际上会接受URL,这使得ajax插件非常容易启动和运行。

看到

相关内容

  • 没有找到相关文章

最新更新