Запустить функцию, когда другая функция завершена

0

Я ищу способ запуска функции, когда другая функция готова.

Это функция:

$(".box").first().show(150, function showNext () {

    $(this).next(".box").show(150, showNext);

});

Итак, я ищу способ запустить еще одну функцию после этого, например:

alert("Done");

Я пробовал это, но не работал.

$(".box").first().show(150, function showNext () {

    $(this).next(".box").show(150, showNext);

}, function () {

alert("Done");

});

Я хочу, на словах:

if(all .box is visble or if showNext is idle/completed){

alert("Done");

}

Я ценю любую помощь! Благодарю.

  • 1
    Просто добавьте if ($(this).next(".box").length === 0) { alert("Done"); } else $ (this) .next (". box"). show (150, showNext); `?
Теги:

1 ответ

1
Лучший ответ

Как насчет:

$(".box").first().show(150, function showNext () {
    var next = $(this).next(".box");

    if (next.length > 0) { // If a next sibling with class "box" was found
        next.show(150, showNext);
    } else { // No sibling found, end reached
        alert("Done");
    }
});
  • 0
    Спасибо @ Берги. Глупая ошибка!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню