我在单个网页上有两个选择选项按钮,但在不同的选项卡上。我想在更改任何一个按钮时更改另一个按钮值,并将其分配给某个元素,例如示例代码中的span。所有的事情都很完美,但是当我改变价值时,它只是花时间关闭下拉菜单。在firefox中没有问题
我的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');
}
});
提前致谢
答案 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进行查找并一次又一次地为每个元素设置值。