我有一个带有“navigation-dropdown”类的下拉栏,当前显示名为“dropdown”的变量为true时(单击导航栏时会下拉下拉值)。因此,关闭下拉列表的唯一方法是再次单击导航栏。有没有办法通过点击身体的任何位置关闭下拉列表?
代码示例:
<nav class="navigation-nav hide-mobile" ng-controller="LeftNavCtrl" ng-click="dropdown=!dropdown">
<h2>Dropdown</h2>
<ul class="navigation-dropdown" ng-show="dropdown" ng-click="dropdown=!dropdown">
<li class="navigation-dropdown__item">
<a>Account</a>
</li>
<li class="navigation-dropdown__item">
<a>Help</a>
</li>
</ul>
</nav>
答案 0 :(得分:0)
你可以试试这个:
$(document).on("click", function(e) {
if (!$(e.target).closest(".navigation-nav").length) {
$scope.dropdown = false;
}
$scope.$apply()
})
如果false
点击的document
上的任何地方不是.navigation-nav
或是.navigation-nav
的孩子,则会将下拉值设置为 Promise.all(arrayOfPromises).then(function (results) {
//so check your results here
for (var i = 0; i < results.length; i++) {
results[i].should.have....
}
//and the notify(done) is chained after this
}).should.eventually.notify(done);
。
这是一个工作小提琴:https://jsfiddle.net/x89dbbw1/7/