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

停止以下腳本,直到間隔完成停止功能,如果時間間隔設置 - jQuery的

$(".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

JavaScript沒有可用於暫停執行的睡眠/暫停方法。您必須使用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() { 
    ..... 
} 
+0

我想禁用當間隔執行此功能。當間隔運行時停止它。 – user2587741

+0

我提供的答案有什麼問題?它不會停止執行代碼,直到間隔被清除? – Lobo

+0

$('。slider-wrap')。unbind('mouseenter mouseleave'); - 在r.redrawSlider()之前只有這一個;缺少:) thx的幫助! – user2587741