Я хочу выполнить пользовательскую функцию только после того, как предыдущая пользовательская функция будет полностью выполнена.jquery run custom function after another is
Я пробовал с обещанием, сделал и когда, но он работает неправильно. Fisrt функция полностью не выполняется, когда второй выполняется ...
Например, я хочу, чтобы выполнить function1(), а затем выполнить function2 только тогда, когда function1 делается:
function1();
function2();
Я пытался с этим, но она не работает вообще:
promise(function1()).done(function2);
Здесь сценарий моего function1:
function function1() {
nbofslides = $('.Slide img').length;
currentslide = 1;
if (nbofslides == currentslide) {
if (nbofslides > 1) {
for (i = 1 ; i <= nbofslides ; i++) {
if (i == 1) {
$('.slider-pagination').append('<li class="slider-page selected bgcolor2"></li>');
} else {
$('.slider-pagination').append('<li class="slider-page bgcolor2"></li>');
}
}
}
$('.iosSlider').iosSlider({
responsiveSlideContainer: true,
responsiveSlides: true,
snapToChildren: true,
desktopClickDrag: true,
keyboardControls: true,
infiniteSlider: true,
navSlideSelector: true,
autoSlide: false,
navNextSelector: $('.slider-next'),
navPrevSelector: $('.slider-prev'),
navSlideSelector: $('.slider-pagination .slider-page'),
onSlideChange: slideChange
});
var setHeight = $('.iosSlider .Slide:eq(0)').outerHeight(true);
$('.iosSlider').css({
height: setHeight
});
function slideChange(args) {
$('.slider-pagination .slider-page').removeClass('selected');
$('.slider-pagination .slider-page:eq(' + (args.currentSlideNumber - 1) + ')').addClass('selected');
}
}
currentslide++;
}
У вас есть вызов Ajax в вашей первой функции? –
У меня нет асинхронных задач в функции1 ... – freaky
Не можете ли вы просто сделать это так: '->' 'function1(); function2();' –