【问题标题】:Selectize.js onFocus callback not workingSelectize.js onFocus 回调不起作用
【发布时间】:2015-05-13 23:29:42
【问题描述】:

我有一个使用 jquery Selectize.js 插件的下拉选择框。我想要它做的是在切换到字段时不显示下拉选择,但仍然通过任何其他方式打开下拉列表。

我设置了 'openOnFocus: false' 以防止它在第一次获得焦点时打开下拉菜单,这很有效。但我不希望用户在使用鼠标时必须双击。所以我尝试设置 onFocus 回调来检查是否按下了 tab 键,如果没有,则再次给它焦点。 onFocus 似乎永远不会触发。我添加了 Console.log 以验证它不是。有什么建议吗?有没有更好的方法来解决这个问题?谢谢!

这是我的代码。

$("#branch_entry").selectize({      
  hideSelected: true,               
  sortField: "value",               
  openOnFocus: false,
  onFocus: function() {
    console.log("focus");                                      
    var code = e.keyCode || e.which;
    if (code != 9) {    // not tab  
      $("#branch_entry").focus();   
    }                               
  }                                 
});  

【问题讨论】:

    标签: jquery onfocus selectize.js


    【解决方案1】:

    我认为你必须处理 selectize 输入元素中的click 事件并调用selectize.open() 方法。

    HTML:

    <div id="branch_entry-div">
      <select id="branch_entry">
        <option value="0">Item 0</option>
        <option value="1">Item 1</option>
        <option value="2">Item 2</option>
      </select>
    </div>
    

    JavaScript:

    $("#branch_entry").selectize({      
      hideSelected: true,               
      sortField: "value",               
      openOnFocus: false
    });
    $("#branch_entry-div .selectize-input").on('click', function() {
      $("#branch_entry")[0].selectize.open();
    });
    

    jsFiddle Demo

    【讨论】:

    • 默认选择打开 - 你的代码帮了我很多。只有 $("#branch_entry")[0].selectize.open();但是小提琴不起作用。谢谢人
    猜你喜欢
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 2016-09-17
    • 2021-06-23
    • 1970-01-01
    • 2017-10-01
    • 2014-09-13
    • 2013-11-20
    相关资源
    最近更新 更多