阻止基于页面上存在的其他类执行默认单击操作



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

我希望能够使用某种形式的javascript(AngularJS 1.3或jQuery(能够做一些逻辑来识别下拉菜单何时"打开" - 如果是这样,如果用户单击屏幕上的其他任何地方,例如div下方的href,它将通过删除"open"类而不是执行默认操作来打开"关闭"下拉列表, 我怎样才能最好地解决这个问题?

<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>

希望您正在搜索此内容

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

最新更新