标签(空格分隔): 事件执行两次javascript
今天在作公司项目的过程当中,须要在表单元素单选框上绑定事件,执行相应的操做,结果发现事件执行了两次
具体代码:java
<div class="radio"> <label roleid="24"> <input type="radio" checked="" value="option1" id="optionsRadios0" name="optionsRadios">测试 </label> </div> // javascript $("[roleid]").click(function (event) { console.log(event.target); var roleid = $(this).attr("roleid"); //return false; //防止事件执行两次 })
控制台打印目标元素:
ios
触发两次的缘由是:label和input关联,点击label的时候,事件冒泡一次,同时会触发关联的input的click事件,致使事件再次冒泡
测试
解决方案:this
- 阻止事件冒泡;
return false
- 判断当前点击的目标元素
event.target
,若是为想要执行操做的元素,则进行操做