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
当同时绑定单击和双击事件时,会触发两次单击事件和一次双击事件:
效果