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

时间:2011-06-15 07:13:18

标签: javascript jquery repeater repeat

我有这个代码似乎在chrome和safari中工作(不确定Opera和ie ..还没有测试..)但是在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中运行的任何想法

3 个答案:

答案 0 :(得分:4)

你应该说:

Stop = setTimeout(Repeat, 1100);

注意缺少括号。目前你告诉它通过Repeat()调用函数返回,当然没有。

答案 1 :(得分:2)

不确定为什么firefox是唯一一个conmplaining但你写错了你的setTimeout。它应该是:

$('p').show('slow').delay(400).hide('slow', function() {Stop = setTimeout(Repeat, 1100)});

答案 2 :(得分:1)

你的问题是这个

变化:

  

setTimeout(Repeat(),1100)

要:

  

setTimeout(“Repeat()”,1100)或setTimeout(Repeat,1100)

请参阅此处的工作示例: http://jsfiddle.net/ZL5XN/1/