javascript onemouseover激活的计时器应该只倒计时一次
我的计时器由onmouseover功能激活 我的css动画在15秒后完成,但我的计时器没有。每次onmouseover后,时间将重新激活,而不是准时倒计时javascript onemouseover激活的计时器应该只倒计时一次,javascript,html,Javascript,Html,我的计时器由onmouseover功能激活 我的css动画在15秒后完成,但我的计时器没有。每次onmouseover后,时间将重新激活,而不是准时倒计时 <span onmouseover="mouseHover()">Hover this text</span> 注意:计时器正在工作(小提琴除外) 如果你有任何建设性的反馈,请告诉我!谢谢 JSFIDLE不适合我,我不知道为什么 如果我理解正确,您可能想做如下操作 在“var timer”之后,应该编写一个变量,如“
<span onmouseover="mouseHover()">Hover this text</span>
注意:计时器正在工作(小提琴除外)
如果你有任何建设性的反馈,请告诉我!谢谢
JSFIDLE不适合我,我不知道为什么 如果我理解正确,您可能想做如下操作 在“
var timer
”之后,应该编写一个变量,如“var executed=False
”。
然后,在startTimer()
函数的末尾,编写“let executed=True
”——这样,函数第一次运行后,变量executed
现在将设置为True
。
然后,您需要确定在运行函数之前是否执行过代码,因此在函数mouseHover()
中写入
if (executed == False){
startTimer()
};
因此,该函数只有在以前没有运行过的情况下才会运行
编辑:
将mouseHover()
函数放在“executed”变量之后,但放在startTimer()函数之前
编辑2:
我不应该使用“let executed=…”,而应该使用“executed=…”
让我知道这是否有效。如果我理解正确,您可能需要执行以下操作
在“var timer
”之后,应该编写一个变量,如“var executed=False
”。
然后,在startTimer()
函数的末尾,编写“let executed=True
”——这样,函数第一次运行后,变量executed
现在将设置为True
。
然后,您需要确定在运行函数之前是否执行过代码,因此在函数mouseHover()
中写入
if (executed == False){
startTimer()
};
因此,该函数只有在以前没有运行过的情况下才会运行
编辑:
将mouseHover()
函数放在“executed”变量之后,但放在startTimer()函数之前
编辑2:
我不应该使用“let executed=…”,而应该使用“executed=…”
让我知道这是否有效。编辑:
我误解了你的问题。您只需要执行一次。
添加新变量以标记事件是否已启动
var timer, started = false;
var startTimer = function() {
if(started) return;
started = true;
window.clearTimeout(timer);
...
}
window.mouseHover = function() {
startTimer();
}
编辑:
我误解了你的问题。您只需要执行一次。
添加新变量以标记事件是否已启动
var timer, started = false;
var startTimer = function() {
if(started) return;
started = true;
window.clearTimeout(timer);
...
}
window.mouseHover = function() {
startTimer();
}
我从JSFiddle复制并尝试了示例代码,我觉得还可以。18:39:29.388 test.html:7 hover 18:39:30.120 test.html:7 hover 18:39:30.986 test.html:7 hover 18:39:31.803 test.html:7 hover 18:39:34.812 test.html:10 yeh 18:39:42.482 test.html:7 hover 18:39:42.766 test.html:7 hover 18:39:43.330 test.html:7 hover 18:39:43.680 test.html:7 hover 18:39:46.694 test.html:10 yehMy问题不清楚。我现在更改了,所以你的代码除了只希望事件发生一次之外还能工作吗?是的,对不起。我的想法太复杂了,但仅此而已。我从JSFIDLE复制并尝试了示例代码,我觉得还可以。18:39:29.388 test.html:7 hover 18:39:30.120 test.html:7 hover 18:39:30.986 test.html:7 hover 18:39:31.803 test.html:7 hover 18:39:34.812 test.html:10 yeh 18:39:42.482 test.html:7 hover 18:39:42.766 test.html:7 hover 18:39:43.330 test.html:7 hover 18:39:43.680 test.html:7 hover 18:39:46.694 test.html:10 yehMy问题不清楚。我现在更改了,所以你的代码除了只希望事件发生一次之外还能工作吗?是的,对不起。我的想法太复杂了,但仅此而已。你能通过这把小提琴帮我吗?不确定。但我认为它奏效了。我放弃了我的剧本,因为它太乱了。不过,我正在制作一个新的。如果我有问题,我会告诉你的,好吗?@webstars当然,我建议在Javascript代码中加入console.log()语句,然后在Chrome开发者工具中,转到“console”,这样当你运行脚本时,你就能看到这些语句的输出。然后,通过查看打印了哪些语句,您将能够看到哪些代码运行,哪些代码中断。你能用这把小提琴帮我吗?不确定。但我认为它奏效了。我放弃了我的剧本,因为它太乱了。不过,我正在制作一个新的。如果我有问题,我会告诉你的,好吗?@webstars当然,我建议在Javascript代码中加入console.log()语句,然后在Chrome开发者工具中,转到“console”,这样当你运行脚本时,你就能看到这些语句的输出。然后,通过查看打印了哪些语句,您将能够看到哪些代码运行,哪些代码中断。我不确定如何使用鼠标盖将数据带到函数:onmouseover=“mouseHover(data)”
函数mouseHover(data){}
我不确定如何使用鼠标盖将数据带到函数:onmouseover=“mouseHover(data)”
函数mouseHover(data){}