javascript - label包裹着input,给label加点击事件会响应两次

 顺辉1988 发布于 2022-11-17 19:39

label包裹着input,给label加点击事件会响应两次




    
    Document


    






点击label1的时候,console输出:

label1
input1
lable1

7 个回答
  • 貌似不单单是label,p也是会的

    2022-11-17 19:54 回答
  • 为什么要用label包裹input?个人感觉画蛇添足了

    2022-11-17 19:54 回答
  • 你把 false改成true就可以了,这有关系到时间的捕获和冒泡

    2022-11-17 19:54 回答
  • 我觉得是这样的 label 标签与 input 相关联,点击 label 就相当于点击了 input 标签。
    然后流程是这样的
    1.点击 label 执行本身的事件 输出 label1
    2.因为点击 label 就相当于点击了 input 标签,所以执行 input 上的事件 输出 input1
    3.因为 label 包含了 input,所以事件向上冒泡 执行 label事件 输出 label1

    2022-11-17 19:54 回答
  • 代码贴出来看看,

    2022-11-17 19:54 回答
  • 今天也碰到这个问题了,联想到label与其绑定元素的关系,就猜测当点击label时,浏览器会自动给被绑定元素也执行点击事件的行为,试了下用e.preventDefault(),发现果然阻止了这个默认行为。事件也就只被执行一次了

    2022-11-17 19:54 回答
  • 没必要用label包含input啊,label的for属性就是为了指定label是为谁说明的

    2022-11-17 19:54 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有