jQuery Select2清除选择,但不更改要更改的选择

时间:2018-10-23 10:50:22

标签: jquery jquery-select2

我想从该类的所有其他选择中清除选择,但一个已更改。我遵循了有关清除选择的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>

解决方案是在运行时锁定该功能,并在完成后将其解锁。

1 个答案:

答案 0 :(得分:0)

好,我明白了。每次更改选择都会产生无限循环。它将重新开始,然后再次运行,因为我在所有选择上都有更改...

我的问题的解决方案在我的帖子中。