Drop down menu 为什么在聚焦窗口内单击Selectize下拉列表时未打开

Drop down menu 为什么在聚焦窗口内单击Selectize下拉列表时未打开,drop-down-menu,selectize.js,Drop Down Menu,Selectize.js,这是“多选”下拉列表,选中后,它会关闭下拉列表,但如果单击该下拉列表,则不会打开焦点下拉列表。为了工作,我必须通过单击外部来解除焦点,当我再次单击下拉列表时,下拉列表将打开。当我们点击焦点下拉列表时,我想要一个打开下拉列表的解决方案 $('#select-state').selectize({ closeAfterSelect: true, onItemAdd: function() { this.close(); }

这是“多选”下拉列表,选中后,它会关闭下拉列表,但如果单击该下拉列表,则不会打开焦点下拉列表。为了工作,我必须通过单击外部来解除焦点,当我再次单击下拉列表时,下拉列表将打开。当我们点击焦点下拉列表时,我想要一个打开下拉列表的解决方案

$('#select-state').selectize({
            closeAfterSelect: true,
            onItemAdd: function() {
            this.close();
 }
 });

选择一个状态。。。
阿拉巴马州
阿拉斯加州
亚利桑那州
阿肯色州
加利福尼亚
科罗拉多州
康涅狄格州
特拉华州

这并不能解决您的全部问题,因为单击时仍不会显示聚焦的选择菜单。但是您可以在
onimadd
回调中调用
blur()
,使现在模糊的输入可以再次单击

此外,您不需要调用此.close(),库将为您执行此操作

<select id="select-state" name="state[]" multiple class="demo-default" style="width:50%" placeholder="Select a state...">
                    <option value="">Select a state...</option>
                    <option value="AL">Alabama</option>
                    <option value="AK">Alaska</option>
                    <option value="AZ">Arizona</option>
                    <option value="AR">Arkansas</option>
                    <option value="CA" selected>California</option>
                    <option value="CO">Colorado</option>
                    <option value="CT">Connecticut</option>
                    <option value="DE">Delaware</option>
                </select>

这并不能解决您的整个问题,因为焦点选择的菜单仍然不会在单击时显示。但是您可以在
onimadd
回调中调用
blur()
,使现在模糊的输入可以再次单击

此外,您不需要调用此.close(),库将为您执行此操作

<select id="select-state" name="state[]" multiple class="demo-default" style="width:50%" placeholder="Select a state...">
                    <option value="">Select a state...</option>
                    <option value="AL">Alabama</option>
                    <option value="AK">Alaska</option>
                    <option value="AZ">Arizona</option>
                    <option value="AR">Arkansas</option>
                    <option value="CA" selected>California</option>
                    <option value="CO">Colorado</option>
                    <option value="CT">Connecticut</option>
                    <option value="DE">Delaware</option>
                </select>

我花了很长时间才弄明白这一点,所以我将在大约2.5年后在这里为子孙后代发布我的答案:)

我没有使用
closeAfterSelect:true
部分,因为这不在我的要求中,因此您必须考虑从列表中删除项目时重新打开的下拉列表


如果我找到一个解决方案,那么我会编辑这个。我希望这对某些人仍然有用

我花了很长时间才弄明白这一点,所以我将在大约2.5年后在这里为子孙后代发布我的答案:)

我没有使用
closeAfterSelect:true
部分,因为这不在我的要求中,因此您必须考虑从列表中删除项目时重新打开的下拉列表

如果我找到一个解决方案,那么我会编辑这个。我希望这对某些人仍然有用

$('#select-state').selectize({
  closeAfterSelect: true,
  openOnFocus: false,

  //Close dropdown on clicking on control in focus
  onInitialize: function () {
    var that = this;
    this.$control.on('mousedown', function () {
      if (that.isOpen)
        that.close();
      else
        that.open();
    });
  },
});