function in setInterval() executes without delay

前端 未结 4 653
广开言路
广开言路 2020-12-02 00:49

I am in the process of making a jquery application to hide an image after a specified interval of time by using setInterval(). The problem is that the hide image function ex

相关标签:
4条回答
  • 2020-12-02 01:32

    http://jsfiddle.net/wWHux/3/

    You called the function immediately instead of passing it to setInterval.

    setInterval( change, 1500 ) - passes function change to setInterval

    setInterval( change(), 1500 ) - calls the function change and passes the result (undefined) to setInterval

    0 讨论(0)
  • 2020-12-02 01:41

    Where you have setInterval(change(), 99999999); you end up calling the change() function immediately and passing the return value of it to the setInterval() function. You need delay the execution of change() by wrapping it in a function.

    setInterval(function() { change() }, 9999999);
    

    Or you can delay it by passing setInterval() just the function itself without calling it.

    setInterval(change, 9999999);
    

    Either works. I personally find the first one a bit clearer about the intent than the second.

    0 讨论(0)
  • 2020-12-02 01:42

    You have setInterval(change(), 99999999); and it should be setInterval(change, 99999999);. See the documentation of setInterval/setTimeout why. :)

    Common mistake, happens to me all the time. :)

    0 讨论(0)
  • 2020-12-02 01:44

    Change setInterval(change(), 99999999); to setInterval(change, 99999999);

    And 99999999 means 99999999 milliseconds as you known.

    0 讨论(0)
提交回复
热议问题