在项目中发现,切换单选按钮,却触发两次点击事件,代码如下:
<ul>
<li class="m-r-sm pull-left">
<label class="i-checks" ng-change="selectTime('1')">
<input type="radio" ng-model="timeChosen" value="1"/><i></i>周一</label>
</li>
<li class="m-r-sm pull-left">
<label class="i-checks" ng-change="selectTime('2')">
<input type="radio" ng-model="timeChosen" value="2"/><i></i>周二</label>
</li>
</ul>
change事件放在li元素上或者label上,切换radio时,发现触发了两次点击事件。就是因为点击label的时候,事件冒泡一次,同时会触发关联的input的change事件,导致事再次触发事件。
change事件放在input元素上即可解决该问题。