JavaScript-javascript如何延迟执行?

JavaScript-javascript如何延迟执行?

清晨说ぺ晚安 发布于 2017-09-22 字数 224 浏览 1168 回复 6

一段jquery代码:

var s=("  #div li");
for(var i=0,len=s.length;i<len;i++){
s[i].click(function(ev){
do something;
})
};

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

甜柠檬 2017-11-01 6 楼

 <body>
<div id="div">
<ul>
<li>111111</li>
<li>222222</li>
<li>333333</li>
</ul>
<div>
<script type="text/javascript">
var s = $(" #div li");
var i = 0;
$.each(s,function(){
$(this).click(function(){
console.log($(this).html());
});
var _this = $(this);
setTimeout(function(){_this.click()},i);
i += 1000;
})
</script>
</body>

偏爱自由 2017-10-27 5 楼

用setTimeOut可以避免,上面代码修改如下:

 var timer = null;
for(var i=0,len=s.length;i<len;i++){
clearTimeout(timer);
timer = setTimeout(function() {
s[i].click(function(ev){
do something;
}).click();
}, 300);
};

浮生未歇 2017-10-26 4 楼

setTimeout(aa.click(),100)这样报错啊?

想挽留 2017-10-15 3 楼

跟问题jQuery有没有类似sleep方法?有点像,我建议可以使用setTimeout来实现,需要注意设置不同的时间差值:

var s=("   # div li");
for(var i=0,len=s.length;i<len;i++){
   setTimeout(function(){
                   s[i].click(function(ev){
                   do something;
   })},i*1000);
};
想挽留 2017-10-07 2 楼

可以用jquery的delay()试试:

 <script>
$("button").click(function() {
$("div.first").slideUp(300).delay(800).fadeIn(400);
$("div.second").slideUp(300).fadeIn(400);
});
</script>

灵芸 2017-09-27 1 楼

你可以在click事件运行完加个延时函数,给你两个延时函数你试下

 function sleep(numberMillis) {
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true) {
now = new Date();
if (now.getTime() > exitTime)
return;
}
}

 function sleep(timeout) {
window.showModalDialog("javascript:document.writeln('<script>window.setTimeout(function () { window.close(); }, " + timeout + ");</script>');");
}