2017-02-14 3 views
0

У меня есть следующий CSS-код, который, когда щелкнут класс .dashboard-actions, открывает раскрывающееся меню. После щелчка на 2-ом div в дереве .dropdown изменится на class = "dropdown open" (указывает, что раскрывающееся меню открыто/видимо), как только пользователь щелкает открытый класс, удаляется, и выпадающее меню исчезает (как и ожидалось).Предотвратить действие по умолчанию для кликов на основе другого класса, существующего на странице

Я хочу, чтобы иметь возможность использовать некоторую форму javascript (AngularJS 1.3 или jQuery), чтобы иметь возможность логически распознавать, когда раскрывающееся меню «открыто» - если это так, если пользователь щелкает в любом месте на экране, для например, href ниже div, он откроет «закрыть» раскрывающийся список, удалив «открытый» класс, а не выполнив это действие по умолчанию, как я могу лучше всего подойти к этому?

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

ответ

0

Надеется, что вы ищете для этого

//Some code 

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

//More code 
Смежные вопросы