在写轮播图,为了复用性高,所以携程函数形式调用,后来才发现setInterval/setTimeout使用函数名作为调用句柄时,不能有参数否则就会立即执行,后预期结果差异很大。所以就特地网上查资料得到以下方案:
但是会立即执行。查看源码就可以知道原因了,同时也会知道setInterval(lunboFn(),3000)、setInterval(“lunboFn()”,3000);也都是错的;
以下demo均自己所写,转载注明 方案一:匿名函数包装 window.setInterval(function() { lunboFn(mainPicList,oPicChilds,1014); }, 1000);
方案二:定义返回无参函数的函数
方案三:修改setInterval
此处不推荐,故不写;来源:前端网