setTimeinterval内的Jquery setTimeout不起作用

时间:2013-09-18 09:56:06

标签: javascript jquery html css

我有一个将推土机从右向左移动的setinterval。

在下面的jsfiddle中,setInterval必须在5秒后自行停止。 (使用了settimeout和clearinterval),但它不起作用。任何人都可以帮助我吗?

http://jsfiddle.net/B5MKj/11/

var gameover;
gameover = setInterval(function () {
    setTimeout(function () {
         clearInterval(movingbulldozer);
    }, 55000);
}, 10);

2 个答案:

答案 0 :(得分:1)

你的小提琴中有一个拼写错误, updated fiddle ,如果工作得很好,但不是5000毫秒,而是为超时设置了55000毫秒。

 setTimeout(function () {
   clearInterval(movingbulldozer);
 }, 5000);

答案 1 :(得分:0)

在您的示例中,movingbulldozer未定义。如果您要尝试清除间隔,请使用正确的参考清除间隔。在您的示例中,这将是clearInterval(gameover);

您的示例的问题是,每隔10毫秒,您就会向DOM添加一个超时,从而清除间隔。

var timeout, interval, date,
    i = 0;

$(document).ready(function() {
    interval = setInterval(function() {
        date = new Date();
        i++;

        $('#debug').html('Interval parsed at '+date.getTime()+', interval #'+i);

        if (i >= 100) { // According to your example
            $('#debug').html('Starting timeout...');

            timeout = setTimeout(function() {
                $('#debug').html('Timed out');
            }, 5000);

            clearInterval(interval);
        }
    }, 10);
});

查看我的示例,看看它是否有帮助。 :)

http://jsfiddle.net/faqq5/