2016-01-13 6 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 когда ползунок нагрузка первой время. Onslideafter это работает неправильно, и я думаю, что причина может заключаться в том, что 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

 Смежные вопросы

  • Нет связанных вопросов^_^