我希望 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 之间的时间(以毫秒为单位)。
我创建了一个简单的函数,当您按住一个键时,它会继续递增全局变量 "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 之间的时间(以毫秒为单位)。