2016-01-13 87 views
0

我有一個bxslider和OnslideAfter以下如何清除超時在Bxslider上OnsliderAfter

onSlideAfter: function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) { 
     setTimeout(function() { 
     jQuery(".active-slide img.drawing_layer_one").animate({ opacity: 1}, 500); 
    }, 150); 
    setTimeout(function() { 
     jQuery(".active-slide img.drawing_layer_two").animate({ opacity: 1}, 600); 
    }, 250); 
} 

,所以我保持動畫的順序發生,它是在sliderload只有工作時,滑塊負荷第一時間。 Onslide後它不能正常工作,並認爲原因可能是Timeing沒有清除。所以,如何在每次OnSlideAfter後清除這個超時,這樣動畫將以正確的順序發生在彼此之後?

回答

1

您需要聲明一個全局變量,然後爲其分配setTimeout。

var myTimeout1; 
var myTimeout2; 
// Code 
onSlideAfter: function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) { 
    myTimeout1 = setTimeout(function() { 
     jQuery(".active-slide img.drawing_layer_one").animate({ opacity: 1}, 500); 
    }, 150); 
    myTimeout2 = setTimeout(function() { 
     jQuery(".active-slide img.drawing_layer_two").animate({ opacity: 1}, 600); 
    }, 250); 
} 

要清除超時,你必須使用此:

clearTimeout(myTimeout1); 
clearTimeout(myTimeout2); 
+0

是它的工作原理!非常感謝@erikscandola –

+0

不客氣! – erikscandola