setTimeout不能使用jquery

时间:2010-07-16 12:50:11

标签: javascript jquery settimeout

我有一个完美的jquery扩展函数但是当我通过setTimout传递它时,它不会等到指定的时间段并立即运行。

jQuery(document).ready(function($) {    
  setTimeout($.mainmenuslider({
    trigger:'close'
  }),6000);  
});

任何想法???

3 个答案:

答案 0 :(得分:15)

您需要传递匿名方法来执行您想要的操作,例如:

jQuery(function($) {    
    setTimeout(function() {
      $.mainmenuslider({
        trigger:'close'
      });
    }, 6000);    
});

否则你试图传递函数的结果(使其立即执行,之后不运行)。

答案 1 :(得分:8)

当您尝试设置以后发生的超时时,您正在调用该功能。代替:

jQuery(function($) {
  setTimeout(function() {
    $.mainmenuslider({trigger:'close'});
  }, 6000);
});

答案 2 :(得分:2)

试试这个!!

jQuery(document).ready(function($) {    
  setTimeout("$.mainmenuslider({
    trigger:'close'
  })",6000);  
});

在使用setTimeout()时,总是尝试指定需要在引号中调用的操作。

例如:

setTimeout("call_this_function()", 4000);