Javascript setTimeinterval内的Jquery setTimeout不工作

Javascript setTimeinterval内的Jquery setTimeout不工作,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个从右向左移动推土机的设定间隔 在下面的JSFIDLE中,setInterval必须在5秒后自行停止。(使用了settimeout和clearinterval)但它不起作用。有人能帮我吗 var gameover; gameover = setInterval(function () { setTimeout(function () { clearInterval(movingbulldozer); }, 55000); }, 10); 在您的示例中,

我有一个从右向左移动推土机的设定间隔

在下面的JSFIDLE中,setInterval必须在5秒后自行停止。(使用了settimeout和clearinterval)但它不起作用。有人能帮我吗

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

在您的示例中,Moving推土机未定义。如果要清除间隔,请使用正确的引用清除间隔。在您的示例中,这将是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);
});
查看我的示例,看看是否有帮助。:)


您的小提琴中有一个输入错误,,如果可以的话,但不是5000毫秒,而是设置了55000毫秒的超时时间

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

它工作得很好,您的小提琴在setTimeOut中有55000个,首先,它停止JSFIDLE包含55秒超时。它会在55秒后按预期停止。你为什么要在间隔时间这样做?每10毫秒添加一次延迟函数执行@发生时的密码泄露:P