Jquery Select2 отменяет выбор, но не выбор, который изменяется - PullRequest
0 голосов
/ 23 октября 2018

Я хочу очистить выбор от всех других выборов с этим классом, но тот изменился.Я следовал документации 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 голосов
/ 24 октября 2018

Хорошо, теперь я понял.Это создаст бесконечный цикл каждый раз, когда он меняет выбор.Он начнется снова и снова запустится, потому что у меня есть изменения на всех выборках ...

Решение моей проблемы в коде в моем посте.

...