Я уверен, что читал об этом на днях, но нигде не могу найти.
У меня есть fadeOut()
событие, после которого я удаляю элемент, но jQuery удаляет элемент до того, как у него появится возможность исчезнуть.
Как заставить jQuery ждать, пока элемент не исчезнет, а затем удалить его?
107
В версии jQuery 1.6 вы можете использовать этот
.promise()
метод.источник
promise()
илиwhen()
иdone()
вы можете использовать некоторые очень прохладное поведение от методов 3 - й партии, или даже самостоятельно. +1 за значимость.promise()
!$(selector).fadeOut('slow').promise().done(function(){...});
Вы также можете использовать,
$.when()
чтобы дождатьсяpromise
завершения:Если вы выполняете запрос, который тоже может завершиться ошибкой, вы можете пойти еще дальше:
источник
$.when()
не работает, потомуmyEvent()
что не возвращает обещание и$.when()
ожидает, что вы передадите ему одно или несколько обещаний, чтобы он выполнил свою работу.если это что-то, что вы хотите переключить, затухая одно и затухая другое в одном месте, вы можете разместить атрибут {position: absolute} в div, чтобы обе анимации воспроизводились друг над другом, и у вас не было чтобы дождаться окончания одной анимации перед запуском следующей.
источник