选择选项下拉菜单需要时间在Chrome中专门关闭

时间:2014-11-28 08:25:55

标签: javascript jquery html css google-chrome

我在单个网页上有两个选择选项按钮,但在不同的选项卡上。我想在更改任何一个按钮时更改另一个按钮值,并将其分配给某个元素,例如示例代码中的span。所有的事情都很完美,但是当我改变价值时,它只是花时间关闭下拉菜单。在firefox中没有问题

jsfiddle

我的HTML代码

<select class="select one" >
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
</select><br><br><br>
<select class="select two">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
</select>
<br><br><br>
 <span class="value"></span>

JQuery的

var lang =  $('select.one').val();
$('span.value').text(lang);

$('select.select').change(function(){
            lang = $(this).val();
            $('span.value').text(lang);
            if ($(this).hasClass('one')) {
                    $('.two').val($(this).val()).trigger('change'); 
            }
            else{
                $('.one').val($(this).val()).trigger('change'); 
                }

        });

提前致谢

2 个答案:

答案 0 :(得分:1)

<强> fixed jsFiddle demo

这是因为您同时触发了更改。冷却下来,这就是你所需要的:

var lang = $('select.one').val();
$('span.value').text(lang);

$('select.select').change(function () {
  lang = this.value;
  $('span.value').text(lang);
  $('.select').val(lang);
});

答案 1 :(得分:0)

你可以试试这个:

var lang = $('.select.one').val();
$('.value').text(lang);

$('.select').change(function (e) {
    $('.select').val(this.value);
    $('.value').text(this.value);
});

问题是.trigger()方法,它遍历dom进行查找并一次又一次地为每个元素设置值。

Check the updated fiddle.