使用JS触发Bootstrap下拉列表

时间:2014-01-10 03:13:06

标签: javascript jquery css twitter-bootstrap

我需要通过JavaScript打开一个Bootstrap下拉菜单。 This answer建议添加和删除open类,但是当我尝试时,没有任何反应。添加不同的类工作正常。 Bootstrap阻止我这样做吗?

JSFiddle上的工作样本。

HTML

<input type="button" value="Add Classes" />
<div class="dropdown">
    <a data-toggle="dropdown" href="#">Dropdown Trigger</a>
    <div class="dropdown-menu">Dropdown Content</div>
</div>

JS

$('input').click(function () {
    $('.dropdown').addClass('open');
    $('.dropdown').addClass('test-class');
});

2 个答案:

答案 0 :(得分:33)

您的主要问题是您没有停止点击事件传播到document。 Bootstrap在document上设置一个关闭下拉列表的事件监听器。

$('input').on('click', function (e) {
    e.stopPropagation();
    $(this).next('.dropdown').find('[data-toggle=dropdown]').dropdown('toggle');
});

jsFiddle - http://jsfiddle.net/8p6Wd/2/

答案 1 :(得分:0)

试试这个......

<div class="dropdown">
    <input type="button" value="Classes" data-toggle="dropdown"/>
    <a data-toggle="dropdown" href="#">Dropdown Trigger</a>
    <div class="dropdown-menu">Dropdown Content</div>
</div>