Javascript setTimeout不使用jquery

Javascript setTimeout不使用jquery,javascript,jquery,settimeout,Javascript,Jquery,Settimeout,我有一个jquery扩展函数,它工作得很好,但是当我将它传递给setTimout时,它不会等待指定的时间段,而是直接运行 jQuery(document).ready(function($) { setTimeout($.mainmenuslider({ trigger:'close' }),6000); }); 有什么想法吗?当您试图设置稍后发生的超时时,您正在调用该函数。相反: jQuery(function($) { setTimeout(function

我有一个jquery扩展函数,它工作得很好,但是当我将它传递给setTimout时,它不会等待指定的时间段,而是直接运行

jQuery(document).ready(function($) {    
  setTimeout($.mainmenuslider({
    trigger:'close'
  }),6000);  
});
有什么想法吗?

当您试图设置稍后发生的超时时,您正在调用该函数。相反:

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

您需要传递一个匿名方法来执行所需操作,如下所示:

jQuery(function($) {    
    setTimeout(function() {
      $.mainmenuslider({
        trigger:'close'
      });
    }, 6000);    
});
否则,您将试图传递函数的结果(使其立即执行,以后不再运行)。

试试这个

jQuery(document).ready(function($) {    
  setTimeout("$.mainmenuslider({
    trigger:'close'
  })",6000);  
});
使用setTimeout()时,请始终尝试指定需要在引号中调用的操作

例:


这实际上不是一个好主意。查看其他答案,以获得正确方法的示例。行前4个空格将其格式化为代码。选择一个块并点击
ctr-k
来执行此操作。刚刚保存了我的屁股!谢谢:)正在追查一个赛况,不明白为什么我不能摆脱它
setTimeout("call_this_function()", 4000);