js实现——鼠标单击事件-onclick和双击事件-ondblclick

本文介绍了JavaScript中如何使用onclick和ondblclick事件处理单击和双击操作。通过示例代码展示了不同方法的用法,包括直接绑定事件处理函数和使用setTimeout来区分单击与双击。此外,还讨论了同时绑定两个事件时可能遇到的问题及解决方案。
摘要由CSDN通过智能技术生成

js实现——鼠标单击事件-onclick和双击事件-ondblclick

  • onclick:单击
  • ondblclick:双击
代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- 方法一 -->
    <button id="clickBtn1">单击/双击按钮1</button>
    <!-- 方法二 -->
    <button onclick="btnClick()" ondblclick="sClick()">单击/双击按钮2</button>
    <!-- 定稿 -->
    <button onclick="dClick()">单击</button>
    <button ondblclick="dblclick()">双击按钮</button>
    <button onclick="dClick()" ondblclick=" dblclick()">单击/双击按钮</button>
    <script>
        // 方法一
        var clickBtn = document.getElementById("clickBtn1");
        clickBtn.onclick = function () {
            console.log("单击==")
        }

        clickBtn.ondblclick = function () {
            console.log("双击---");
        }

        // // 方法二
        function btnClick(e) {
            console.log("单击==")
        }

        function sClick(e) {
            console.log("双击---");
        }

        // 定稿
        var time = null;
        //单击事件
        function dClick(e) {
            // console.log("单击=====")
            //取消上次延时未执行的方法
            clearTimeout(time); //首先清除计时器
            //设置延时300ms
            time = setTimeout(function () {
                //   time = setTimeout( ()=> {
                //在此写单击事件要执行的代码
                console.log("单击==")
            }, 300);
        }

        //双击事件
        function dblclick() {
            //取消上次延时未执行的方法
            clearTimeout(time);
            //下面写双击事件要执行的代码
            console.log("双击---");
        }
    </script>
</body>

</html>

注意:

定时器时间要大于300ms

当同时绑定单击和双击事件时,会触发两次单击事件和一次双击事件:

在这里插入图片描述

效果

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值