【问题标题】:bootstrap-select does not proxies click eventbootstrap-select 不代理点击事件
【发布时间】:2016-02-01 17:37:12
【问题描述】:

我有选择元素:

  <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' 的事件代理?我该如何解决?

【问题讨论】:

  • 你试过$('#selectBox option').on('click', function(){});

标签: twitter-bootstrap select onclick


【解决方案1】:

将代码更改为:

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

这必须有效;

【讨论】:

  • 是的,这项工作。谢谢。这不是我所需要的,但它为我提供了必要的功能。
  • 这不是答案,而是一种解决方法。 需要点击事件有合法的用例。
【解决方案2】:

虽然$("#selectBox").change(...) / .on("change", ...) 在下拉菜单选项更改时触发,但在选择保持不变时将不起作用。

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

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

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

bootstrap-select documentation on events

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 2012-05-31
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    相关资源
    最近更新 更多