javascript - 防止基于页面上现有的另一个类的默认点击操作

标签 javascript jquery html css angularjs

我有以下 CSS 代码,当单击 .dashboard-actions 类时会打开一个下拉菜单。单击树中的第二个 div 后,dropdown 更改为 class="dropdown open"(表示下拉菜单打开/可见),一旦用户单击关闭,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>

最佳答案

希望你正在寻找这个

//Some code

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

//More code

关于javascript - 防止基于页面上现有的另一个类的默认点击操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42224538/

相关文章:

javascript - Parse JS ACL - Parse.User.current() 的 getPublicReadAccess 总是返回 false?

javascript - Vue.js 延迟 v-if 切换

jquery - 如何在 DatePicker 中启用过去的日期?

php - jquery 显示特定元素然后在选择另一个元素时隐藏

html - 如何将 CSS 应用于 HTML 文本输入?

javascript - Express.js 和 Angular - 身份验证和登录 session

javascript - 如何检查行是否为空然后不显示?

jquery - 根据模式确认对话框选择关闭 Bootstrap 警报

javascript - 使用ajax向下拉列表添加值的问题

php - 有没有办法从单个页面导出 CSS 和 HTML 代码?