[英]Using setInterval with $(document).ready
我正在尝试在加载html页面之后调用一个函数。 它的工作正常,我希望每3秒调用一次该函数,并为此插入setInterval()。 但是根本不调用该函数。 setInterval()的语法是否有问题?
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
</script>
<script>
$(document).ready( setInterval(function(){f()},3000); );
function f()
{
xhttp=new XMLHttpRequest();
xhttp.open("GET","/anu/get.php",true);
xhttp.send();
xhttp.onreadystatechange = function(){
if(xhttp.readyState==4){
var Display = document.getElementById('new');
Display.innerHTML = xhttp.responseText;
}
}
}
</script>
</head>
<body>
<p id="new"> </p>
<body>
</html>
它应该是:
$(document).ready(function () {
setInterval(function(){f()},3000);
});
这里的问题是setInterval
返回一个数字 ,并将数字传递给$(document).ready(...)
没有任何作用。 相反,您需要传递$(document).ready(...)
一个函数,例如从setInterval
调用开始的函数。
另一个问题是,在setInterval
之后添加了分号,但分号仅对语句有效(您可以将其视为“站在自己的行上的东西”)。 您只能将表达式传递给setInterval
函数,并且表达式没有分号,因此在右括号前的多余分号是错误的,因为JS引擎看到了以分号结尾的语句,该语句期望没有分号表达。
另外,您可以将其缩短为
$(document).ready(function () {
setInterval(f, 3000);
});
甚至
$(function () {
setInterval(f, 3000);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.