<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>
我在父节点(<ul />
)上进行了ng单击,但是将其向下移到<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.检查目标(在合成事件中不存在,在这种情况下为AngularJs)
4.检查currentTarget-这是空的
5.对此有两个eventHandlers,我已经证实这不是问题。这仅在<ul />
呈现的两个类别之一中发生。而且它始终是触发的最后一个列表项。