javascript - 选中的选择框中更新选项的性能

标签 javascript jquery performance jquery-chosen twitter-bootstrap-2

我使用 jQuery Chosen选择框和 Bootstrap 2.3.2 的插件。我有两个具有相同选项的选择框,其中值是字符串。如果我在第一个选择框中选择选项,则此选项在第二个选择框中被禁用,反之亦然。如果我在第一个选择框中取消选择选项,则此选项将在第二个选择框中启用,反之亦然。

基本上,我有两个选择框,它们具有相同的选项,但您只能在一个选择框中选择相同的选项。

我对第一个选择框使用重置按钮,它将选择框更新为初始状态。这意味着对于第一个选择框中的所有选项,selected 属性为 false,对于第二个选择框中的所有选项,disabled 属性为 false。

问题在于性能。当我单击重置按钮时,更新选项属性和选择的选择框太长了。我想为具有超过一千个选项的选择框使用重置按钮,但我不知道是否应该更改我的代码或使用另一个选择框插件。

jsfiddle

$(".keywordContain").click(function(){
    $('select[name=keywordContainSelect] option').prop('selected', false).trigger('chosen:updated');
    $('select[name=keywordNotContainSelect] option').prop('disabled', false).trigger('chosen:updated');
});

最佳答案

您的代码当前正在为每个选项元素触发“chosen:updated”事件。您只需为 <select> 执行此操作:

$(".keywordContain").click(function () {
    $('select[name=keywordContainSelect] option').prop('selected', false);
    $('select[name=keywordNotContainSelect] option').prop('disabled', false);
    $(".selectKeyword").trigger("chosen:updated");
});

Here is the updated jsfiddle.

关于javascript - 选中的选择框中更新选项的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26845250/

相关文章:

javascript - ng-repeat 中的 Angular 过滤器——没有匹配结果时显示消息

php - 为什么 jquery 无法使用 codeigniter 正确发布?

javascript - 使用 onclick 旋转图像

javascript - 如何在js函数中传递一个对象作为函数参数?

javascript - 我怎样才能把这个匿名函数变成一个命名函数,这样我就可以把它移到一个外部 JS 文件中以便重用

JavaScript 定界符?转义换行符 : JSLint Bad Escapement?

javascript - 缩短 JavaScript 函数事件

c - 为什么 _mm512_store_pd 在这个矩阵乘法代码中 super 慢?

ios - iOS上的圆形头像和性能问题

asp.net-mvc-2 - 用于分析 ASP.NET MVC Web 服务器性能的免费工具和方法?