在所选选择框中更新选项的性能

时间:2014-11-10 13:44:08

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

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

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

我使用重置按钮作为第一个选择框,将选择框更新为初始状态。这意味着对于第一个选择框中的所有选项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');
});

1 个答案:

答案 0 :(得分:2)

您的代码目前正在触发&#34;已选择:已更新&#34;每个选项元素的事件。您只需要为<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.