AngularJS - 如何在浏览器的任何位置显示奇数点击次数?

时间:2016-01-05 21:26:30

标签: javascript jquery html angularjs

我有一个带有“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>

1 个答案:

答案 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/