Why does jQuery fadeOut not work inside this setInterval loop?
Posted
by Clay McClure
on Stack Overflow
See other posts from Stack Overflow
or by Clay McClure
Published on 2009-11-24T21:43:56Z
Indexed on
2010/06/17
22:33 UTC
Read the original article
Hit count: 255
I'm trying to load random items into a div every few seconds, with a nice fadeOut/fadeIn transition between each load. Here's the code:
<html>
<body>
<div id="item"></div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
// Load a random item
var item = $('#item');
function load_item() {
item.fadeOut(5000, function() {
item.load('http://dynamic.xkcd.com/comic/random/ #middleContent img', null, function() {
item.fadeIn(5000);
});
});
};
// Load initial featured item
load_item();
// Schedule repeated loading
setInterval(load_item, 15000);
</script>
</body>
</html>
This works fine the first time through, but on subsequent calls to load_item, the fadeOut() seems to stop working. It doesn't actually fade the #item div out, but jumps immediately into the callback function, ignoring the 5000 delay.
What am I doing wrong?
© Stack Overflow or respective owner