延迟后续行

时间:2015-04-30 12:20:53

标签: javascript

我正在尝试延迟执行后续行,例如:

//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);

4 个答案:

答案 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"之后调用。一秒钟。

如果你想要"时间休息"在中间,你需要每次都添加一个函数,正如我在这里所示。