Javascript 如何通过按住按钮增加js中的变量? 点击器 var得分=1; } 函数递增1() { 分数=分数+1; document.getElementById(“clickmebtn”)。值=分数; }
我可以使用纯JavaScript使保留按钮变量增加吗?我想增加名为score的变量。我相信你是在跳这样的东西-Javascript 如何通过按住按钮增加js中的变量? 点击器 var得分=1; } 函数递增1() { 分数=分数+1; document.getElementById(“clickmebtn”)。值=分数; },javascript,html,Javascript,Html,我可以使用纯JavaScript使保留按钮变量增加吗?我想增加名为score的变量。我相信你是在跳这样的东西- let得分=0; 让状态=假; const scorel=document.querySelector(“#score”); const btnEl=document.querySelector('#btn'); 设区间=null; btnEl.addEventListener('mousedown',e=>{ 状态=真; 更新(); }); btnEl.addEventListen
let得分=0;
让状态=假;
const scorel=document.querySelector(“#score”);
const btnEl=document.querySelector('#btn');
设区间=null;
btnEl.addEventListener('mousedown',e=>{
状态=真;
更新();
});
btnEl.addEventListener('mouseup',e=>{
状态=假;
更新();
});
常数更新=()=>{
如果(状态){
间隔=设置间隔(()=>{
分数++;
scorel.innerHTML=分数;
}, 100);
}否则{
if(间隔)clearInterval(间隔);
}
}
0
增量
onmousedown
上,创建一个函数以每n毫秒调用一次函数onmouseup
上,删除该间隔!()var区间=null;
var按钮=document.querySelector(“clickmebtn”);
var得分=0;
button.onmousedown=函数(){
addCount();//立即调用函数
interval=setInterval(addCount,500);//开始每500毫秒调用一次
};
button.onmouseup=函数(){
clearInterval(interval);//如果释放按钮,则清除间隔
};
//将1添加到计数器并设置为按钮值
函数addCount(){
button.value=++分数;
}
点击器
我可以通过将onmousedown
事件更改为[start an interval][1]来实现这一点,它会反复调用increase1()
方法,直到用onmouseup
清除[interval][2]
您可以使用忙循环(例如,while(true)
)执行此操作,但这会阻塞UI线程,并且页面将变得无响应。使用间隔可以避免这种情况
您的示例已更新为使用此方法:
var得分=1;
函数递增1(){
分数=分数+1;
document.getElementById(“clickmebtn”)。值=分数;
}
var增量延迟=10;//每10毫秒增加一次分数(防止繁忙循环阻塞UI线程)
var区间=null;
函数开启计数器(){
间隔=设置间隔(增加1,增加延迟);
}
功能关闭计数器(){
间隔时间;
}
使用setTimeout设置一个间隔,并在onmousedown事件侦听器中循环该间隔。我在onmouseup中使用了一个单独的侦听器来清除超时
您可以在下面的setTimeout中更改时间,以更改分数增加之间的间隔
var得分=0;
无功定时器;
函数递增1()
{
计时器=设置超时(函数(){
分数=分数+1;
document.getElementById(“clickmebtn”)。值=分数;
增加1();
}, 1000);
}
函数停止(){
清除超时(计时器);
}
点击器
您可以为“onmousedown”添加一个事件侦听器,然后为“onmousedup”添加另一个事件侦听器。这是否回答了您的问题?如果这解决了你的问题,那么请接受答案,这样其他人将来可以得到帮助@ZielonyXD
<html>
<head>
<link rel="stylesheet" href="styles.css">
<title>Clicker</title>
<script type="text/javascript">
var score = 1;
}
function increase1()
{
score=score+1;
document.getElementById("clickmebtn").value = score;
}
</script>
</head>
<body>
<div id="container"><center><div id="spacer"></div><div id="btiptsish">
<input id="clickmebtn" type="submit" value="0" onmousedown="increase1()" onmouseup="increase1()"><br><br><br><br></r></div></center>
</div>
</body>
</html>