Using setInterval with $(document).ready
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);
});
相关文章:
- jQuery document.ready not working
- jQuery document.ready停止代码
- 停止对document.ready函数的重定向/刷新
- 如果没有document.ready(),我怎么能拥有多个javascript函数呢
- ASPX Jquery 1.11 $(Document).ready(function() {} was skipped
- 为什么不'加载$(document.ready(function)后,单击“工作”
- 从Document.ready中的bundle执行javascript
- 从 document.ready 调用 jQuery 插件抛出 getPreventDefault 错误
- 调用 Document.ready 外部的 AJAX 函数
- jQuery "$(document).ready(function () {" equivalen
- 尝试触发点击document.ready中Bigcommerce Classic Next主题中的产品选项
- document.ready是在async js之后加载的
- 当在document.ready中使用async=true时会发生什么
- 说明ajax何时在document.ready中调用
- 如何在document.ready(function)时运行隐藏函数和动画
- HTML方法未使用Document Ready加载值
- 超越了在document.ready()中编写简单函数
- Javascript on click事件在函数中不起作用,但在document.ready()中起作用
- 为什么document.ready中的事件处理程序函数有效但无效;取出后不起作用
- 在document.ready jquery上运行ajax请求