问题描述
|
我有这段代码似乎可以在chrome和safari中使用(不确定是否可以操作歌剧,也就是刚刚经过测试。),但是在Firefox中,它至少不会重复播放功能,而是只运行一次。
http://jsfiddle.net/ZL5XN/
HTML:
<div class=\"Start\">Play</div><div class=\"Stop\">Stop</div>
<br /><br />
<p>Lorem Ipsum Dolor Sit Amet...</p>
JS:
var myTimeOut,Stop,stop_flag;
$(\'.Start\').click( function () {
stop_flag = 0;
Repeat();
});
$(\'.Stop\').click( function () {
clearTimeout(Stop);
stop_flag = 1;
$(\'p\').show(\'slow\');
});
function Repeat() {
if(stop_flag == 1)
{
return;
}
else
{
$(\'p\').show(\'slow\').delay(400).hide(\'slow\',function() {Stop = setTimeout(Repeat(),1100)});
}
}
问题是..任何想法,为什么它不能在Firefox
解决方法
您应该说:
Stop = setTimeout(Repeat,1100);
请注意缺少的括号。目前,您正在告诉它调用Repeat()
返回的函数,当然没有。
, 不知道为什么firefox是唯一的示例,但是您将setTimeout写错了。它应该是:
$(\'p\').show(\'slow\').delay(400).hide(\'slow\',function() {Stop = setTimeout(Repeat,1100)});
, 你的问题是这个
更改:
setTimeout(Repeat(),1100)
至:
setTimeout(\“ Repeat()\”,1100)或setTimeout(Repeat,1100)
在这里查看工作示例:
http://jsfiddle.net/ZL5XN/1/