我在测试页面中尝试了这个并且它工作正常。
<div class="btn-group">
<button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown">
Action <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</div>
单击任何下拉菜单项时,下拉菜单将关闭。
但是,当我在HotTowel项目中将其复制到nav.html时:
<div class="btn-group">
<a class="btn btn-info" href="#">Home</a>
<a class="btn btn-info" href="#/details">Details</a>
<button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown">
Odd Pages <span class="caret"></span>
</button>
<ul class="dropdown-menu pull-right" role="menu">
<li><a href="#/page1">Page 1</a></li>
<li><a href="#/page3">Page 3</a></li>
<li><a href="#/page5">Page 5</a></li>
<li class="divider"></li>
<li><a href="#">Page 9</a></li>
</ul>
</div>
在我点击网页上的某个位置之前,下拉菜单不会关闭。
有什么问题?
答案 0 :(得分:1)
必须有其他一些javascript阻止下拉关闭。这是你发布的确切代码的JSFiddle,它运行得很好。
<div class="btn-group">
<a class="btn btn-info" href="#">Home</a>
<a class="btn btn-info" href="#/details">Details</a>
<button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown">
Odd Pages <span class="caret"></span>
</button>
<ul class="dropdown-menu pull-right" role="menu">
<li><a href="#/page1">Page 1</a></li>
<li><a href="#/page3">Page 3</a></li>
<li><a href="#/page5">Page 5</a></li>
<li class="divider"></li>
<li><a href="#">Page 9</a></li>
</ul>
</div>
尝试删除任何可能与bootstrap / jQuery js冲突的其他javascript。
答案 1 :(得分:1)
我有同样的问题,显然当使用durandal路线时,下拉菜单在点击项目后没有关闭。 示例'SPAJumpStart'解决方案的行为相同.John Papa通过绑定click事件而不是href来“修复”这个问题。 最后,我在shell.js的viewAttached函数中添加了以下代码:
$('ul.dropdown-menu', view).find('li').click(function () {
// remove the 'open' class on the parent element
$(this).parents('.dropdown-menu').parent().removeClass('open');
});