Bootstrap在另一个下拉列表中嵌套下拉列表

时间:2014-10-30 05:17:57

标签: jquery html css twitter-bootstrap

我想在另一个下拉列表中嵌入一个下拉列表(fiddle):

enter image description here

但是,当您尝试打开父下拉列表时,嵌套下拉列表会关闭父下拉列表。经过一个小时的研究,我尝试按照SO上的一些答案的建议添加e.stopPropagation()无效。如何在一个下拉列表中正确嵌套?

<div class="dropdown">
    <a class="dropdown-toggle btn btn-info" href="#" data-toggle="dropdown">Dropdown 1</a>

    <div class="dropdown-menu" style="padding: 10px;min-width:500px;">

        <div class="tab-container tab-left">
            <ul class="nav nav-tabs flat-tabs">
                <li class="active"><a href="#1" data-toggle="tab">Page 1</a></li>
                <li><a href="#2" data-toggle="tab">Page 2</a></li>
            </ul>
            <div class="tab-content" style="border: 0;">
                <div class="tab-pane active cont fade in" id="1">

                    <div class="dropdown">
                      <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown">
                        Dropdown
                        <span class="caret"></span>
                      </button>
                      <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
                        <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
                        <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
                        <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
                        <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
                      </ul>
                    </div>

                </div>
                <div class="tab-pane cont fade" id="2">
                    <h3 class="hthin">Test Page 2</h3>
                </div>
            </div>
        </div>

    </div>
</div>

1 个答案:

答案 0 :(得分:1)

经过一些摆弄,解决方案是手动打开和关闭下拉列表。 Fiddle

$('.testLinkOpen').on('click', function (event) {
    $(this).parent().toggleClass("open");
});

$(document).on('click', function (e) {
    if (!$('.parentContainer').is(e.target) && $('.parentContainer').has(e.target).length === 0 && $('.open').has(e.target).length === 0) {
        $('.parentContainer').removeClass('open');
    }
});