我的代码在Firefox中不起作用...?

问题描述

| 我有这段代码似乎可以在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/