closeOnSelect: false 在使用 dropdownAdapter 时在 Select2 中不起作用

xir*_*ola 5 javascript jquery jquery-select2

当您在下拉列表中选择特定项目时,自定义选择将被隐藏。为什么?在我的选择中,我有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
      });
  });
});
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

Bas*_*sil 2

您可以closeOnSelect在使用之前将其设置为 false,代码如下

closeOnSelect= function(){return false;};
Run Code Online (Sandbox Code Playgroud)

closeOnSelect= function(){return false;};
Run Code Online (Sandbox Code Playgroud)
$(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)
      });
  });
});
Run Code Online (Sandbox Code Playgroud)