首页 > 其他 > 详细

解决label点击事件触发两次问题

时间:2015-04-19 06:17:23      阅读:1149      评论:0      收藏:0      [点我收藏+]

问题描述:

通常,为了用户体验,我们点击单选框或者复选框后面文字,即可选中当前项。代码如下:

<label>
       <input type="radio" name="sex" /></label>
<label>
       <input type="radio" name="sex" /></label>

但是,此时,如果label标签有点击事件,则会触发两次。

问题原因:

点击label的时候,事件冒泡一次,同时会触发关联的input的click事件,导致事件再次冒泡

解决办法:

1.判断事件来源,如果是input,则阻止。代码如下:

 $("label").click(function (e) {
                if ($(e.target).is("input"))
                    return;
                //code
            });

这个方法同样适用于解决“点击页面空白处隐藏弹窗”问题。

2.从写法上解决,使用label标签的for属性,代码如下:

<input type="radio" name="sex" id="man" /><label for="man"></label>
<input type="radio" name="sex" id="women" /><label for="women"></label>

3.其他解决办法,传送门

 

解决label点击事件触发两次问题

原文:http://www.cnblogs.com/talentzemin/p/4438513.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!