zoukankan      html  css  js  c++  java
  • 解决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>

    作者:行果
    本博客文章大多为原创或者伪原创,转载请关注博主,原创文章并且留下链接。
  • 相关阅读:
    怪题
    reflow(回流)和repaint(重绘)
    typeof
    Apicloud——图片不适配屏幕解决方案
    (学习笔记二)Apicloud使用中的坑
    es6的10个新特性
    QQ刷屏脚本
    vue的组件绑定
    console控制台打印看板娘
    Canvas
  • 原文地址:https://www.cnblogs.com/xinggood/p/15703277.html
Copyright © 2011-2022 走看看