Javascript jquery中的timedout函数

Javascript jquery中的timedout函数,javascript,jquery,Javascript,Jquery,jquery中的超时函数是什么 setTimeout("searchClusterAction(action)",3000); function searchClusterAction(action) { var url = action $(location).attr('href',url); } 在使用timedout时,第2行出现错误 var action = "/search/perform/1584/xyz/["1","2","3","4,5,6"

jquery中的超时函数是什么

setTimeout("searchClusterAction(action)",3000);

function searchClusterAction(action)
{
        var url = action
        $(location).attr('href',url);
}
在使用timedout时,第2行出现错误

var action = "/search/perform/1584/xyz/["1","2","3","4,5,6"]/json
setTimeout('searchClusterAction('+action+')',3000);

jQuery没有特殊的超时函数,本机的超时函数工作得很好,并且易于使用

 var timeout = setTimeout(function(){
    $('.example').fadeOut();
  },400);
该函数允许JavaScript记录在未来的X毫秒内运行给定函数。(顺便说一句,不管W3怎么说,都应该将函数而不是字符串传递给
setTimeout()

一个警告:不要像这样调用
setTimeout()
调用中的函数:

setTimeout(foo(),1000);
因为它将运行
foo()
,然后将
foo
的结果传递给
setTimeout()
。简单地说:

setTimeout(function(){ foo(); },1000);

据我所知,不存在额外的方法。@BrianHoover@BrianHoover,我正要警告您发布w3schools链接。这些海报通常会让人几乎晕眩。更好的注意:你不应该用W3Schools来学习任何东西。你能告诉我为什么不传递字符串吗?@AnkitGautam为了获得最佳实践,你应该传递一个函数,而不是字符串。@Somekitts我也读过这句话的答案,但我想从以下方面寻找原因:“这是个糟糕的建议。除非喜欢使用eval(),否则永远不会将字符串传递给setTimeout()。传递字符串还意味着,除其他外,不能使用本地范围中的任何变量。此外,本页上的示例使用了大量全局变量。不好。”