javascript - Using setInterval with $(document).ready - Stack Overflow

Am trying to invoke a function after the loading of the html page. Its working fine and I want the func

Am trying to invoke a function after the loading of the html page. Its working fine and I want the function to be invoked after every 3 seconds and hence inserted the setInterval() for it. But the function is not at all getting called. Is there any problem with the syntax of setInterval()..?

<html>
<head>

<script src=".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>

Am trying to invoke a function after the loading of the html page. Its working fine and I want the function to be invoked after every 3 seconds and hence inserted the setInterval() for it. But the function is not at all getting called. Is there any problem with the syntax of setInterval()..?

<html>
<head>

<script src="http://ajax.googleapis./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>
Share Improve this question edited May 4, 2014 at 16:18 Domenic 113k42 gold badges226 silver badges273 bronze badges asked May 4, 2014 at 16:14 TrooperTrooper 1554 silver badges15 bronze badges 1
  • 2 setInterval(function(){f()},3000); is a very long winded way of saying: setInterval(f,3000); – Quentin Commented May 4, 2014 at 16:17
Add a ment  | 

1 Answer 1

Reset to default 4

It should be:

$(document).ready(function () {
  setInterval(function(){f()},3000);
});

The problem here is that setInterval returns a number, and passing a number to $(document).ready(...) does nothing. Instead, you need to pass $(document).ready(...) a function, such as a function that starts off the setInterval call.

The other problem is that you included a semicolon after the setInterval, but semicolons are only valid on statements (which you can think of as "things that stand on their own line"). You can only pass expressions to functions like setInterval, and expressions don't have semicolons, so your extra semicolon before the closing parenthesis is an error, because the JS engine sees a semicolon-terminated statement where it expects there to be a no-semicolon expression.


Also, you can shorten this to just

$(document).ready(function () {
  setInterval(f, 3000);
});

or even

$(function () {
  setInterval(f, 3000);
});

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745564527a4633313.html

相关推荐

  • javascript - Using setInterval with $(document).ready - Stack Overflow

    Am trying to invoke a function after the loading of the html page. Its working fine and I want the func

    15小时前
    20

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信