点击事件抛发与按钮状态的关系

结论:只有元素设置属性disabled=“disabled”,抛发才会被禁止,其他情况均不影响点击事件抛发

按钮状态:原始状态display:nonevisibility:hiddenpointer-events:none被覆盖页面隐藏溢出窗口disabled=“disabled”
事件抛发×
鼠标触发×××××××

一、按钮的不同状态对事件抛发的影响

1.原始状态

按钮未加任何属性,未被遮盖
此时,按钮的点击事件可抛发,可被鼠标点击触发
在这里插入图片描述

2.按钮 display:none

点击事件依然被抛发,也只能抛发
在这里插入图片描述

3.按钮 visibility:hidden

点击事件依然被抛发
在这里插入图片描述

4.按钮被其他定位元素完全覆盖

在被完全覆盖的情况下,使用鼠标已经无法触发点击事件,但点击事件抛发依然成功了
在这里插入图片描述
改变覆盖物的透明度,结果依旧 ↓。在这里插入图片描述

5.页面被隐藏(切到其他页面了)

使用定时器6秒后抛发点击事件,刷新页面,切到其他页面,6秒后切回来,事件依然被抛发了

6.按钮溢出窗口

点击事件依然被抛发
在这里插入图片描述

7.按钮 disabled=“disabled”----------------------------------------------重点

点击事件终于被禁止抛发了,当然鼠标点击也不能触发了
在这里插入图片描述

8.按钮 pointer-events:none

只能禁止用户点击,抛发依然执行了
在这里插入图片描述

二、结论:只有元素设置属性disabled=“disabled”,抛发才会被禁止,其他情况均不影响点击事件抛发

三、实验代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        #div{
            background-color: #000;
            width: 80px; height: 80px;
            /* position: relative; top: -30px; */
        }
    </style>
</head>
<body>
    <button id="btn">点击按钮</button>
    <div id="div"></div>
</body>
<script>
    var btn=document.querySelector("#btn");
    btn.onclick=function(){console.log("点击");}

    var newEvent=document.createEvent("MouseEvents");
    newEvent.initEvent("click",true,true);
    btn.dispatchEvent(newEvent);   
</script>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值