我想从该类的所有其他选择中清除选择,但一个已更改。我遵循了有关清除选择的select2文档,但始终收到JavaScript错误。
$( document ).ready(function() {
$('.select').select2();
var locked = false;
$('.select').change(function(){
console.log($('.select').not(this).length);
if (!locked) {
$('.select').not(this).each(function(i, e){
locked = true;
$(this).val(null).trigger('change');
});
locked = false;
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/css/select2.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/js/select2.min.js"></script>
<select class="select" id="1" style="width: 90%;" multiple>
<option value="1">Selection 1</option>
<option value="2">Selection 2</option>
</select>
<br />
<br />
<select class="select" id="2" style="width: 90%;" multiple>
<option value="1">Selection 1</option>
<option value="2">Selection 2</option>
</select>
<br />
<br />
<select class="select" id="3" style="width: 90%;" multiple>
<option value="1">Selection 1</option>
<option value="2">Selection 2</option>
</select>
解决方案是在运行时锁定该功能,并在完成后将其解锁。
答案 0 :(得分:0)
好,我明白了。每次更改选择都会产生无限循环。它将重新开始,然后再次运行,因为我在所有选择上都有更改...
我的问题的解决方案在我的帖子中。