我是靠谱客的博主 文艺香烟,最近开发中收集的这篇文章主要介绍解决label点击事件触发两次问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

问题描述:

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

<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.其他解决办法,传送门

 

转载于:https://www.cnblogs.com/talentzemin/p/4438513.html

最后

以上就是文艺香烟为你收集整理的解决label点击事件触发两次问题的全部内容,希望文章能够帮你解决解决label点击事件触发两次问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部