Useless setTimeout call (missing quotes around argument?)

前端 未结 5 1930

I have this sniplet of code in jQuery

$element.parent().children().last().hide().show(\'slide\', {direction : \'left\'}, 700, function () {
    $element.delay(20         


        
相关标签:
5条回答
  • 2021-02-12 20:03

    I got same error when I wrote

    setTimeout(updateStatus(), 5000);
    

    instead of

    setTimeout(updateStatus, 5000);
    
    0 讨论(0)
  • 2021-02-12 20:05

    Just for reference if someone stumbles upon this question and is looking for a possible answer. I got the exact same error message as the initial poster because I was mixing up the setTimeout arguments order.

    This:

    setTimeout(25, function(){
        spotlight.intro.find('#intro').ellipsis();  
    });
    

    ... gave me the error message. I changed the function to this:

    setTimeout(function(){
        spotlight.intro.find('#intro').ellipsis();
    }, 25);
    

    And my problem was solved.

    0 讨论(0)
  • 2021-02-12 20:13

    There already exists a jQuery-method delay and it expects a string(queueName) and not a function as parameter. Choose another name for your delay-method to avoid conflicts.

    0 讨论(0)
  • 2021-02-12 20:16

    I agree with wsbaser. I had the additional instance of needed to pass information to the function, and for simplicity used:

    setTimeout(function(){ updateStatus(myData) } , 5000);
    

    The argument needs to be a function and not a function being called. Firefox caught this error, chrome let it go.

    0 讨论(0)
  • 2021-02-12 20:26

    The problem was in Firefox 3. It is not handling some elements properly => Element is completely omitted in the tree and ignored -> hence my original problem

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