javascript - 为什么我无法在DropdownOpen 上加载选项?

标签 javascript drop-down-menu selectize.js

这是我的代码。 我想在打开下拉菜单时加载选项。 它从 ajax 加载数据,但现在不会将其放入下拉列表中。

selectize = selectAgentField.selectize({
  create: true,
  render: {
      option: function(item, escape) {
          console.log(item);
          return '<div>'+ escape(item.agent_name) + '</div>';
      }
  },
  onChange: function(value) {
    selectedValue = value;
  },
  onDropdownOpen: function() {
    WorkersService.getIdleWorkers(function(data) {
      selectize.clearOptions();
      _.each(data, function(worker, index) {
        selectize.addOption({value: index, text: worker.attributes.name, contact_uri: worker.attributes.contact_uri});
      })
      selectize.refreshOptions(false);
    });
  }
})[0].selectize;

最佳答案

我没有找到明确的答案为什么上面的代码不起作用。但这是我的代码破解。我在 onFocus 事件上绑定(bind)更新,因此当我单击控件时会触发更新。

selectize = selectAgentField.selectize({
  create: false,

  onChange: function(value) {
    selectedValue = value;
  },

  // <<<<<< Here is solution >>>>>>
  onFocus: function() {
    WorkersService.getIdleWorkers(function(data) {
      selectize.clearOptions();
      _.each(data, function(worker, index) {
        selectize.addOption({value: index, text: worker.attributes.name, contact_uri: worker.attributes.contact_uri});
      });
      selectize.refreshOptions(true);
    });
  }
})[0].selectize;

关于javascript - 为什么我无法在DropdownOpen 上加载选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30754113/

相关文章:

javascript - 如何获取 JavaScript 生成器的第 n 个值?

PHP设置下拉框的选中值

css - IE 在没有背景设置的情况下不包括边距和填充

javascript - 在 selectize JS 中设置当前倍数

jquery - 选择 - 创建和选项不能一起工作

javascript - OSX仪表板小部件命令行访问问题

javascript - Ionic APP 中的 Disqus

javascript - jQuery .click() 即使在尝试了一些已知修复后也无法在 iOS Safari 上运行

jquery - 当另一个 div 悬停在 jQuery 上时,div 下拉

javascript - 选择在 Bootstrap 面板中不起作用