Twitter Bootstrap SelectPicker onchange函数未被调用

时间:2013-07-27 01:35:16

标签: jquery html5 twitter-bootstrap

所以我有一个简单的选择列表

<select id="themes" class="selectpicker">
    <option selected>mkl-ambiance</option>
    <option>default</option>
    <option>ambiance</option>
    <option>blackboard</option>
</select>

和一小段jquery

   $("#themes").change(function() {
        var theme = $("#themes").val();
        editor.setOption("theme", theme);
    });

如果我从选择中删除class="selectpicker",则回拨按预期工作。 我甚至添加了onchange="doMyFunction并将$("#themes").change(function() {更改为function doMyFunction() {,但仍然无效。是否有一些引导魔法让我无法正常工作?

1 个答案:

答案 0 :(得分:3)

这是因为Selectpicker会生成<ul><li>标记,并将<select><option>放在一边。它会为每个<li>元素添加“rel”属性,以便您知道相对于所选<li>选择了哪个选项。

无论如何,您应该使用Selectpicker插件中的官方onChange事件,或执行以下操作:

$('ul.dropdown-menu.selectpicker li').on('click', function () {
    var selectedValue = $($('select.selectpicker option')[$(this).attr('rel')]).val();
});