我有一个图像幻灯片实验,其中每个图像每三秒幻灯片一次。我有两个按钮,一个称为“暂停包”,另一个称为“通行包”,在三秒钟内我需要单击“暂停包”按钮。当我单击“暂停包”时,图像会暂停,当我单击“传递包”时,幻灯片将恢复(屏幕上显示另一张图像)。
我的问题是我需要记录暂停图像的秒数。一旦我点击“Pause bag”按钮,就会调用一个名为 btn_pause_click()
的函数,该函数记录图像暂停的秒数,直到点击“Pass bag”。对于第一次单击“通行证包”,我得到了图像暂停的确切秒数,然后幻灯片放映恢复,屏幕上看到另一张图像。当我再次单击它时,我得到的秒数比实际图像暂停的秒数要多。假设第一次点击“Pass bag”时,图像暂停 9.67 秒,然后在另一个图像出现后,假设该图像暂停 6.75 秒,所以当我为此单击“pass bag”时图像我需要得到 6.75。相反,我得到了 9.67+6.75。相反,我只需要记录 6.75。感谢对此的任何想法..
以下是我的“暂停包”按钮单击和“传递包”按钮单击的函数:
function display_pause()
{
if (milisec_pause>=99)
{
milisec_pause=0;
seconds_pause+=1;
}
else
milisec_pause+=1;
dpause = seconds_pause + "." + milisec_pause;
timer_pause = setTimeout("display_pause()",10);
pause_Timer = dpause;
}
function btn_pause_click()
{
display_pause();
document.myForm.btn_pause.disabled = true;
document.myForm.btn1.disabled = false;
document.myForm.btn_pass.disabled = false;
clearTimeout(Timer);
clearTimeout(msg_Timer);
}
function btn_pass_click()
{
alert(pause_Timer);
clearTimeout(pause_Timer);
pause_Timer = 0;
milisec_pause=0;
seconds_pause=0;
document.myForm.btn_pass.disabled = true;
document.myForm.btn1.disabled = false;
document.myForm.btn_pause.disabled = false;
Timer = setTimeout("slideit()",800);
if(flag == 1)
msg_Timer = setTimeout("msg(flag)",500);
}
最佳答案
这里似乎有问题:
timer_pause
你的计时器是:timer_pause = setTimeout("display_pause()",10);
pause_Timer
是当前暂停时间在<sec>.<millisec>
中的字符串dpause = seconds_pause + "." + milisec_pause; //... pause_Timer = dpause;
但是
您正在清理
pause_Timer
和不timer_pause
这是计时器的变量clearTimeout(pause_Timer);
您还设置了
pause_Timer
至0
pause_Timer = 0;
不考虑其他问题(如果有),您至少应该进行以下更改:
clearTimeout(timer_pause);
接下来,考虑更具描述性且不太可能相互混淆的变量名称!
关于javascript - 记录按钮点击时间的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5738827/