Warum funktioniert JQuery in dieser SetInterval -Schleife nicht?
-
22-09-2019 - |
Frage
Ich versuche, alle paar Sekunden zufällige Gegenstände in eine DIV zu laden, mit einem schönen Fadeout/Fadein -Übergang zwischen jeder Last. Hier ist der 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>
Dies funktioniert beim ersten Mal gut, aber bei nachfolgenden Aufrufen bei Load_Item scheint der Fadeout () nicht mehr zu arbeiten. Es verblasst das #Item Div nicht wirklich aus, springt aber sofort in die Rückruffunktion und ignoriert die Verzögerung von 5000.
Was mache ich falsch?
Lösung
setInterval("load_item()",15000)
Ich weiß, dass es lustig aussieht, es in Zitate zu stecken, aber es funktioniert.
Die andere Option ist zu sagen:
load_item = function(){...etc...};
setInterval(loadItem,1500)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow