我希望onmousedown的行为像onkeydown一样来维护调用函数

时间:2015-08-26 14:10:37

标签: onmousedown

我创建了一个简单的函数,当你按下一个键时,它继续递增全局变量“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>

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

你有个主意吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

这不起作用的原因是因为onkeydown事件有点奇怪,因为它不仅仅是关键向下,而是在之后的时间间隔。

Onmousedown然而只有鼠标向下,所以要模拟你需要做的事情

<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添加值之间的时间(以毫秒为单位)。