我希望 onmousedown 表现得像 onkeydown 来维护调用函数

I want onmousedown behaves like onkeydown to maintain the call function

我创建了一个简单的函数,当您按住一个键时,它会继续递增全局变量 "i"。源代码在这里,很简单:

<html>
<head>
</head>
<body>

<script type="text/javascript">

var i = 0;

document.body.onkeydown = function()
{
    i++;
 console.log(i);    
};

</script>   

</body>
</html>

现在,当我用 onmousedown 替换 onkeydown 时,我想要同样的效果:

<html>
<head>
</head>
<body>

<script type="text/javascript">

var i = 0;

document.body.onmousedown = function()
{
    i++;

    console.log(i); 
};

</script>   

</body>
</html>

=> 但它不起作用,因为控制台显示了一次 i 值。

你有想法吗?提前谢谢你。

这不能像您认为的那样工作的原因是 onkeydown 事件有点奇怪,因为它不是 'just' on keydown,而是之后也会隔一段时间。

然而,

Onmousedown 仅在鼠标上down 因此要模拟相同的行为,您必须执行类似

的操作
<script>
var i=0;
var dt=100;
var interval;
document.body.onmousedown = function(){
    interval = setInterval(function(){i++;console.log(i);},dt)
}
document.body.onmouseup = function(){
    clearInterval(interval);
}
</script>

其中 dt 是将值添加到 i 之间的时间(以毫秒为单位)。