我正在尝试延迟执行后续行,例如:
//block of code
if (//some condition) {
delay(1000)
}
//block of code
我该怎么做?我尝试使用while
循环,例如:
var del = 0
setTimeOut(function(){del = 1}, 1000)
while (del === 0) {console.log("waiting for 1 second");}
但它导致浏览器崩溃。 那么是否有一种声明或方法或功能可以以干净的方式做到这一点?
注意:我不想使用setTimeOut
来调用函数
或者有类似延迟的动画:
$("#editor img").on("mouseenter",slideInTag)
.delay(1000)
.on("mouseenter",slideOutTag);
答案 0 :(得分:1)
简短回答如果您不想使用settimeout,那么 NO 方式就可以了。
答案 1 :(得分:1)
根据@Rahul Tripathi的评论回答。
将this
设置为变量并使用变量而不是this
。
$(selector).on("mouseenter", function(){
var x = this;
setTimeOut(function () {slideOutTag(x)}, 1000);
})
答案 2 :(得分:0)
无法在javascript中阻止当前线程。
答案 3 :(得分:0)
您需要使用setTimeOut。所以在你的情况下,它将是:
$("#editor img").on("mouseenter", function(){
setTimeout(function(){slideOutTag()},1000)
}
您必须定义一个slideOutTag
函数,该函数将在" mouseenter"之后调用。一秒钟。
如果你想要"时间休息"在中间,你需要每次都添加一个函数,正如我在这里所示。