由于代码优于1000个单词,因此,为了显示我的问题,我创建了一个插件:http ://bit.ly/1uiR2wy
给定特定的DOM元素,问题是我有一个带有ng-change的输入复选框,我想向包装它的li添加一个ng-click,以便能够在整个区域中单击。这种新的ng-click使ng-change中的方法发生两次。甚至对于发生3次的SPAN Description 2来说更糟。
<li class="odd" ng-click="changeToggleModel($event)">
<span class="overcomeDescription ellipsis-overflow">span description</span>
<label>
<span>SPAN DESCRIPTION 2</span>
<input type="checkbox" ng-change="toggleSelection($event)" ng-model="isSelected">
</label>
</li>
我已经尝试过stopPropagation,但似乎无法解决问题。有什么想法吗?如果您检查了导航键并打开了控制台,您将完美地看到该问题。
在此先感谢大家
您需要在标签级别停止事件传播。试试这个:
<label ng-click="$event.stopPropagation()" ...>
发生这种情况的原因是,标签的类别(连接到相应的复选框)会再产生一个click事件,以便将click传递给输入。此click事件引起描述的奇怪问题,因为它仍然像正常事件一样冒泡(很好,它是正常事件),因此被ngClick
指令检测到。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句