You need to wrap the code to run at intervals in a function:
function slides(x) {
$("#irack").stop().animate({"left": x}, 20);
};
setInterval(function() {
slides(-30);
}, 300);
Did you really mean setInterval
? That will keep happening, every 300ms or so. If you want it just to happen once, use setTimeout
instead.
Update: If you want to cancel the interval later, you'll need to save the handle to a variable:
// Somewhere appropriate, have a variable for the handle
var handle = 0; // 0 = not running
...
// Starting:
handle = setInterval(...);
...
// Stopping:
if (handle != 0) {
clearInterval(handle);
}
handle = 0;
Note the use of 0
for the handle when it's not set. 0
is an invalid return value from setInterval
, so you can rely on it. (You can use undefined
or null
if you like as well, just be sure to check for them.)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…