当前一个关闭时打开另一个bootstrap-select(selectpicker)

时间:2014-04-24 14:40:30

标签: twitter-bootstrap bootstrap-select

我的页面上有2个selectpickers。 我希望能够在用户选择第一个选项时打开(向下滑动)第二个选择选择器。 这样做是为了帮助用户不要点击太多。

示例HTML:

<div class="row">
    <select class="select-picker" id="picker1" data-size="10">
        <option>Opt 1</option>
        <option>Opt 2</option>
        <option>Opt 3</option>
        <option>Opt 4</option>
    </select>

    <select class="select-picker" id="picker2" data-size="10">
        <option>Opt 2.1</option>
        <option>Opt 2.2</option>
        <option>Opt 2.3</option>
        <option>Opt 2.4</option>
    </select>
</div>

JS的例子:

$(document).ready(function() {
    $('.select-picker').selectpicker();

    $('.select-picker').change(function(){
        // Trying to open 2nd selectpicker
        $selectpickerButton = $('button[data-id="picker2"]');
        $selectpicker = $selectpickerButton.parent();

       //$selectpicker.addClass('open');
        $selectpickerButton.click();
    });
});

这是JSBin:http://jsbin.com/UFoRIYex/514/edit

而小提琴:http://jsfiddle.net/u6vWL/46/

1 个答案:

答案 0 :(得分:2)

以下工作,有点脏但是嘿!!

更新的答案

我使用了和以前一样的答案,但现在我设置了一个超时并在超时完成后调用了一个函数:

    $('.select-picker').selectpicker();
var selectpickerButton = $('button[data-id="picker2"]');


$(document).on("change", "#picker1", function () {
    setTimeout(function () {
        // Do something after xx milli seconds
        youSelected();
    }, 100);
});

function youSelected() {
    $(selectpickerButton).trigger('click');

}

jSFiddle