closeOnSelect: false не работает в Select2 при использовании dropdownAdapter - PullRequest
5 голосов
/ 16 января 2020

При выборе определенного элемента c в раскрывающемся списке пользовательский выбор скрывается. Почему? В моих вариантах у меня есть closeOnSelect: false;

Внимание! Я использую $.fn.select2.amd.require. «select2 / dropdown / closeOnSelect» не может быть удален.

$(function() {
  $.fn.select2.amd.require([
      "select2/utils",
      "select2/dropdown",
      "select2/dropdown/attachContainer",
      'select2/dropdown/closeOnSelect'
  ], function (Utils, DropdownAdapter, AttachContainer, closeOnSelect) {
      $('select').select2({
          dropdownAdapter: Utils.Decorate(Utils.Decorate(DropdownAdapter, AttachContainer), closeOnSelect),
          closeOnSelect: false
      });
  });
});
<link href="https://cdn.jsdelivr.net/npm/select2@4.0.12/dist/css/select2.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.12/js/select2.full.js"></script>
<div class="select i-select">
  <select name="" id="">
    <option value="1">White</option>
    <option value="2">Gray light</option>
    <option value="3">Gray</option>
    <option value="4">Black</option>
  </select>
</div>

1 Ответ

2 голосов
/ 16 января 2020

Вы можете установить closeOnSelect в false перед использованием со следующим кодом

closeOnSelect= function(){return false;};

$(function() {
  $.fn.select2.amd.require([
      "select2/utils",
      "select2/dropdown",
      "select2/dropdown/attachContainer",
      'select2/dropdown/closeOnSelect'
  ], function (Utils, DropdownAdapter, AttachContainer, closeOnSelect) {
  
      closeOnSelect= function(){return false;};
      
      $('select').select2({
          dropdownAdapter: Utils.Decorate(Utils.Decorate(DropdownAdapter, AttachContainer), closeOnSelect)
      });
  });
});
<link href="https://cdn.jsdelivr.net/npm/select2@4.0.12/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.12/js/select2.full.js"></script>
<div class="select i-select">
  <select name="" id="">
    <option value="1">White</option>
    <option value="2">Gray light</option>
    <option value="3">Gray</option>
    <option value="4">Black</option>
  </select>
</div>
...