JavaScript

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

文 / 管理员 来源 / 原创 阅读 / 711 3年前

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

<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>


评论

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

站点声明:本站转载作品版权归原作者及来源网站所有,原创内容作品版权归作者所有,任何内容转载、商业用途等均须联系原作者并注明来源。

© 2020-2030 qdxcy.cn 版权所有京ICP备13045222号
相关侵权、举报、投诉及建议等,请发E-mail:2323946929@qq.com

友情链接: YzmCMS官方网站 YzmCMS官方论坛