问题描述:

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

<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" >女</label>

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-02-08
  • 2021-07-28
  • 2022-12-23
  • 2021-11-20
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-23
  • 2021-10-13
  • 2021-06-18
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案