<div class="nav">
<ul>
<li ng-repeat="navigation in vm.navigation.entries" ng-click="vm.navigationSelect(navigation)">
<a scrolltop ng-if="!navigation.desktopOnly">
{{navigation.title}}
<span class="glyphicon glyphicon-chevron-down buttonchevron"
ng-if="navigation.subNav"></span>
<ul class="sub-nav">
<li ng-repeat="children in navigation.childEntries" ng-click="vm.subMenuClickHandler($event)">
{{children.title}}
</li>
</ul>
</a>
</li>
</ul>
</div>
Я ng-click на родительских узлах (<ul />
), но переместил его вниз на <li />
), чтобы увидеть, изменилось ли поведение - нет.Проблема со вторым <ul />
и обработчиком subMenuClickHandler($event)
.Когда я нажимаю <ul />
, чтобы развернуть списки, элемент last <li />
запускает событие.Когда я проверяю event.srcElement
, чтобы увидеть, откуда он исходит, он говорит <li />
.
1.<ul Title>
a.<li child title/>
b.<li child title/>
2.<ul Title>
a.<li child title/>
b.<li child title/>
Когда я нажимаю Заголовок 2, чтобы развернуть дочерние заголовки, b.child запускается.Есть идеи, почему?
Вот что я пробовал:
1. $ event.stopPropagation ()
2. .preventDefault ()
3. проверка цели (не существует на синтетическомсобытия, в данном случае AngularJ)
4. проверка currentTarget - это ноль
5. На этом есть два события EventHandler, и я убедился, что это не проблема.Это происходит только для одной из двух категорий <ul />
.И это всегда последний элемент списка, который срабатывает.