检查鼠标按钮是否按下按钮/图片,每隔几秒钟执行一次功能,直到按下按钮

Check if mouse button is down on a button/picture and keep executing a function after every few seconds till the button is pressed?

本文关键字:按钮 执行 一次 功能 钟执行 是否 鼠标 图片 检查 几秒      更新时间:2023-09-26

基本上,我要做的是,我试图调用函数,并在每"n"秒后重复相同的函数,直到在按钮/图片上按下鼠标按钮(MouseDown),并在释放鼠标按钮时停止调用该函数(MouseUp。我正在尝试使用JavaScript

一些参考

https://api.jquery.com/mousedown/

如何在mousedown上检测鼠标右键事件?

JavaScript:检查鼠标是否按下?

没有经过测试,但给出了一个想法。

var state = false;
function repeatingFunction(){
    if (!state){
        return;
    }
    console.log("Do something");
    setTimeout(repeatingFunction, 2000);
}
function mymousedown(ev){
    state = true;
    repeatingFunction();
}
function mymouseup(ev){
    state = false;
}
var obj = document.getElementById("foo");
obj.addEventListener("mousedown", mymousedown);
obj.addEventListener("mouseup", mymouseup);

这应该适用于您:

var timerId = 0;
function onmousedown(ev) {
    console.log("Do something");  //first call right after mouse down
    timerId = setInterval(function () {
        console.log("Do something");
    }, 2000);
}
function onmouseup(ev) {
    clearInterval(timerId);
}
var obj = document.getElementById("foo");
obj.addEventListener("mousedown", onmousedown);
obj.addEventListener("mouseup", onmouseup);

小提琴:https://jsfiddle.net/kLnjh9zd/