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

发布于 2024-11-16 00:35:03 字数 875 浏览 5 评论 0原文

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

问题是..任何想法为什么不是在火狐浏览器中工作

I have this code that seems to work in chrome and safari ( not sure about opera and ie.. just havent tested.. ) but in firefox it at least doesnt repeat the play function but just runs it once.

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)});
    }
}

Question is.. any ideas why it is not working in firefox

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

幸福不弃 2024-11-23 00:35:03

你应该说:

Stop = setTimeout(Repeat, 1100);

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

You should be saying:

Stop = setTimeout(Repeat, 1100);

Note the missing brackets. At the moment you're telling it to call the function returned by Repeat(), which of course there isn't.

末骤雨初歇 2024-11-23 00:35:03

不知道为什么 Firefox 是唯一一个抱怨的,但你的 setTimeout 写错了。应该是:

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

Not sure why firefox is the only one conmplaining but you've written your setTimeout wrong. It should be:

$('p').show('slow').delay(400).hide('slow', function() {Stop = setTimeout(Repeat, 1100)});
残疾 2024-11-23 00:35:03

你的问题是这个

变化:

setTimeout(重复(), 1100)

至:

setTimeout("Repeat()", 1100) 或 setTimeout(Repeat, 1100)

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

You problem is this

Change:

setTimeout(Repeat(), 1100)

To:

setTimeout("Repeat()", 1100) or setTimeout(Repeat, 1100)

See the working example here:
http://jsfiddle.net/ZL5XN/1/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文