【发布时间】:2020-09-04 10:51:44
【问题描述】:
我是 JS 的初学者,现在正在编写一个 javascript 应用程序
在应用程序中有一个按钮,当用户点击它时,一扇门应该打开 10 秒然后再次关闭
我使用“设置间隔”来执行此功能:
var rVars = []
rVars.push( {name:"door", val:1} ) // 1 for open , 0 for close
_server.setRoomVariables(r, user, rVars)
var params = {}
params.user = user
params.r = r
myInterval = setInterval("TimeForClose", 20000, params)
这是10秒后负责关门的代码
function TimeForClose(params){
var rVars = []
rVars.push( {name:"door", val:0} )
_server.setRoomVariables(params.r, params.user, rVars)}
它成功完成了,但问题是我发现“TimeForclose”功能每 10 秒重复一次,这使得当另一个用户点击按钮并为他打开门时,第一个重复的功能仍然重复将也为第二个用户关上门,他们每个人的两个功能都将重复,依此类推。
所以我读到我必须使用“清除间隔”或计时器来停止重复,但是当我使用它时,它并没有停止重复,所以我认为我用错了
那么停止重复的最佳方法是什么? (我只希望该功能在有人单击按钮时发生一次然后停止)。
希望你给我正确的代码语法
【问题讨论】:
-
尝试 setTimeout 函数而不是间隔
-
@Sagar 你能帮我写代码吗?取决于上面的代码?我是 Javascript 初学者,谢谢
-
只需将 setInterval 替换为 setTimeout。
-
@Alpeto 添加了一个答案
-
@Sagar 谢谢你的帮助,但是当我按照你说的那样做时,门现在根本没有关上所以你能告诉我如何使用 clearInterval() 吗?
标签: javascript settimeout setinterval