gpt4 book ai didi

javascript - 每 X 秒使用不同的参数调用一个方法

转载 作者:行者123 更新时间:2023-11-28 13:30:47 25 4
gpt4 key购买 nike

仅供引用:我知道有很多“如何使用 JavaScript 每 X 秒调用一个方法”问题;这略有不同,因此请不要标记为重复,除非确实如此。

问题:我有一个方法move,它接受方向参数(即rlu,或d)。我想每隔 X 秒使用一个参数调用我的 move 方法,但我希望它“取消”正在运行任何其他参数的当前 move 间隔。例如,如果我每 1 秒运行一次 move('r'),然后触发每 1 秒运行一次的 move('d') 事件,我想取消 move('r') 方法。

代码:

$(document).keydown(function(event) {
if(event.which == RIGHT){
window.setInterval(function(){
//CANCEL OTHER CURRENT "MOVES" HERE
move('r');
}, 500);

} else if (event.which == LEFT) {
window.setInterval(function(){
//CANCEL OTHER CURRENT "MOVES" HERE
move('l');
}, 500);
} else if (event.which == UP){
window.setInterval(function(){
//CANCEL OTHER CURRENT "MOVES" HERE
move('u');
}, 500);
} else if (event.which == DOWN){
window.setInterval(function(){
//CANCEL OTHER CURRENT "MOVES" HERE
move('d');
}, 500);
}
});

编辑感谢大家的精彩回答。下面几个答案的轻微组合让我完成了我的项目(好吧,几乎)-http://jsfiddle.net/thomasmclaughlin/8c9ww/ - 再次感谢!

最佳答案

为您的时间间隔设置全局计时器变量

var myInterval = null;

现在有一个方法来设置间隔,但首先检查是否正在进行:

function startInterval(r, l, u, d) {
if (myInterval != null) clearInterval(myInterval)

myInterval = setInterval(function() {
move(r, l, u, d);
}, 500);
}

现在,每次调用 startInterval 时,它都会取消当前间隔(如果有)并开始新的间隔。

关于javascript - 每 X 秒使用不同的参数调用一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25145592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com