5

我有选择元素:

  <select id='selectBox'>
    <option>Mustard</option>
    <option>Ketchup</option>
    <option>Relish</option>
  </select>

并通过 jquery 设置点击事件:

$('#selectBox option').click(function(){
.....
});

使用http://silviomoreto.github.io/bootstrap-select/后:

  <select id='selectBox' class="selectpicker" multiple="" data-selected-text-format="count">
    <option>Mustard</option>
    <option>Ketchup</option>
    <option>Relish</option>
  </select>

我得到了很好的乘法下拉菜单,一切正常,除了当我点击菜单项(选择或删除它)时什么都没有发生。

为什么不单击从我的原始(隐藏的)选项元素到新创建的元素 'ul.dropdown-menu li a' 的事件代理?我该如何解决?

4

2 回答 2

12

将您的代码更改为:

$('#selectBox').on('change', function(){
    .....
});

这必须有效;

于 2013-09-06T15:01:28.290 回答
0

While $("#selectBox").change(...)/ .on("change", ...)fire when the dropdown menu option changes, it will not work when the selection stays the same.

如果您想在下拉菜单关闭后立即检查与下拉菜单关联的单选按钮,请使用该hidden.bs.select事件。

我们也可以使用相关的show.bs.selectshown.bs.select,只要我们不会导致下拉菜单失去焦点并关闭。

缺点是即使我们不更改下拉菜单选择,我们也会收到事件,例如打开然后单击下拉菜单外部而不选择选项。

请参阅有关 events 的 bootstrap-select 文档

于 2016-02-01T09:37:12.430 回答