根据页面上存在的其他类阻止默认单击操作

时间:2017-02-14 11:05:57

标签: javascript jquery html css angularjs

我有以下CSS代码,当单击.dashboard-actions类时会打开一个下拉菜单。点击树中的第二个div .dropdown更改为class =" dropdown open" (表示下拉菜单是打开/可见的),一旦用户点击关闭,打开的类被删除,下拉菜单消失(按预期)。

我希望能够使用某种形式的javascript(AngularJS 1.3或jQuery)能够做一些逻辑来识别下拉列表何时打开' - 如果是这样,如果用户点击屏幕上的任何其他位置,例如div下面的href,它将打开'关闭'删除'打开'而不是做那个默认动作,我怎么能最好地接近这个?

<div class="dashboard-actions ellipsis">
   <div class="dropdown" stop-event>
      <div class="dropdown-toggle" type="button" id="dropdown1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
           <span class="material-icons">more_vert</span>
      </div>
        <ul class="dropdown-menu" aria-labelledby="dropdown1">
           <div>
            <div ng-include src="'templates/menu.html'" ng-repeat="x in item.x"></div>
          </div>
        </ul>
   </div>
</div>
<div class="interaction-body">
  <a href="https://somecdn.com/t51.2885-15/aaa.jpg" ng-href="https://somecdn.com/t51.2885-15/aaa.jpg" target="_blank" stop-event="">
  <img ng-src="https://somecdn.com/t51.2885-15/aaa.jpg" src="https://somecdn.com/t51.2885-15/aaa.jpg"></a>
</div>

1 个答案:

答案 0 :(得分:0)

希望您正在寻找此

//Some code

$('.dropdown-menu').each({
    if($(this).hasClass('open')){
        // Do something
        // $(this).removeClass('open');
    }
});

//More code