我的代码如下:
$("p").click(function(){
$(this).hide();
})
$.doTimeout('myLoop', 5000, function() {
++i;
timeleft = calctime(id, jsondata);
document.getElementById("timeleft").innerHTML = timeleft;
/* From the docs: "If the callback returns true, the doTimeout loop will execute again, after the delay, creating a polling loop until the callback returns a non-true value." */
return i == 50 ? false : true;
});
};
JS在我的laravel服务器中实现,因此可能会导致问题。
我尝试过以下事项:
1下载jquery文件而不是使用谷歌服务
2添加一个不同的jquery函数(代码的顶部)来查看jquery是否正常工作。它做的。
我的目标是创建一个具有同步延迟的循环(与javascripts异步setTimeout不同),因此代码每5秒运行一次循环。
Jquery正在工作,因为我的代码的顶层部分正常运行。
我正在使用的Jquery是Mozilla Firefox上的3.3.1版本
任何人都可以提供一些信息,为什么doTimeout不工作?
好吧所以我制作了这个片段,但在这里我不认为doTimeout库工作正常,因为我现在收到两个错误。希望它有所帮助
var i = 0;
$.doTimeout( 100, function(){
i++;
document.getElementById("counter").innerHTML = i;
});

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-dotimeout/1.0/jquery.ba-dotimeout.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="counter"></div>
&#13;
答案 0 :(得分:1)
你可以download dotimeout插件。因为它不是jQuery核心的一部分。
然后将其注入script
标记。错误将在消失后消失。
答案 1 :(得分:0)
我在不使用doTimeout的情况下解决了这个问题。
function fuckit(timeleft, id, jsondata){
setTimeout(function(){
timeleft = calctime(id, jsondata);
document.getElementById("timeleft").innerHTML = timeleft;
fuckit(timeleft, id, jsondata);
}, 1000);
}
它本身就是一个函数调用。
我不建议任何人这样做,因为它基本上是错误的编码,但它有效,因为它只是一个学校项目我很满意。