如果设置了间隔,则停止功能 - jQuery

时间:2013-09-16 15:05:52

标签: jquery

 var startTime = new Date().getTime();
    var interval = setInterval(function() {
        if (new Date().getTime() - startTime > 1000) {
            clearInterval(interval);
            return;
        }
        r.redrawSlider()
    }, 50);
}),
  

停止以下脚本,直到间隔完成

 $(".slider-wrap").mouseenter(function() {
    $(this).find(".slide-desc").css({
        left: '0'
    });
    $(this).find(".bx-wrapper").css({
        'padding-left': '100px'
    });
    $(this).find(".slide-desc p, .slide-desc span, .slide-desc h2").css({
        'left': '0'
    });
}).mouseleave(function() {
    $(this).find(".slide-desc").css({
        left: '-200px'
    });
    $(this).find(".bx-wrapper").css({
        'padding-left': '0'
    });
    $(this).find(".slide-desc p, .slide-desc span, .slide-desc h2").css({
        'left': '500px'
    });
    setTimeout(function() {
        r.redrawSlider();
    },

我想冻结上面的脚本,直到间隔完成。我怎么能这样做?

提前致谢!

1 个答案:

答案 0 :(得分:1)

JavaScript没有可用于暂停执行的sleep / halt方法。您必须使用setInterval(...)setTimeout(...)来模拟睡眠方法。

在这种情况下,您可以将要执行的代码放在函数中,然后在间隔完成时调用该函数。

如果您想清除要运行代码的间隔,则应使用

var startTime = new Date().getTime();
    var interval = setInterval(function() {
        if (new Date().getTime() - startTime > 1000) {
            clearInterval(interval);
            //**call your method here**
            thisIsAMethodThatHasYourCode();
            return;
        }
        r.redrawSlider()
    }, 50);
}),
...

function thisIsAMethodThatHasYourCode() {
    $(".slider-wrap").mouseenter(function() {
    .....
}