#jquery
#jquery
Вопрос:
У меня есть следующий код:
$('#oldLoginProblem').fadeOut();
$('#newLoginProblem').fadeOut();
$('#newLoginProblem').fadeIn();
Он запускается каждый раз, когда я нажимаю кнопку.
Вначале это будет выглядеть так:
foobar
Но когда я нажимаю свою кнопку и запускаю этот код, это выглядит следующим образом:
foobar
foobar2
Первый элемент не исчезает, он остается. Второй элемент просто отображается ниже, как будто у меня есть simple .show() . Кроме того, никакого замирания не происходит каким-либо образом. Как я могу это решить?
Комментарии:
1. Вам следует опубликовать свой HTML-код и jQuery целиком, чтобы мы могли видеть, что происходит.
2. jsfiddle.net/p3469 попробуйте это
3. @rsplak — Не используйте задержки! Они ненадежны. Вместо этого вы должны использовать обратные вызовы для правильной анимации цепочки. jsfiddle.net/p3469/1
Ответ №1:
Если вы хотите, чтобы ваши анимации выполнялись последовательно, вам нужно запускать их с помощью обратных вызовов (в противном случае все они будут запускаться одновременно и выглядеть как беспорядок):
$('#oldLoginProblem').fadeOut('slow', function(){
$('#newLoginProblem').fadeOut('slow', function(){
$('#newLoginProblem').fadeIn('slow');
});
});
Также похоже, что у вас может быть неверный идентификатор где-то в вашей разметке (поскольку первая часть содержимого не исчезает), но это невозможно определить без примера вашей разметки.