2

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

在下面的 jsfiddle 中,setInterval 必须在 5 秒后自行停止。(为此使用了 settimeout 和 clearinterval )但它不起作用。谁能帮我?

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

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

2 回答 2

1

您的 fiddle 中有一个错字,更新了 fiddle,如果可以正常工作,但您设置的超时时间不是 5000 毫秒,而是 55000 毫秒。

 setTimeout(function () {
   clearInterval(movingbulldozer);
 }, 5000);
于 2013-09-18T10:14:55.220 回答
0

在您的示例中,movingbuldozer 未定义。如果您尝试清除间隔,请使用正确的参考清除间隔。在您的示例中,这将是 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/

于 2013-09-18T10:09:26.490 回答