Я работаю над функцией, которая скрывает, показывает и заменяет элемент, используя вызов AJAX. Все работает отлично, оно оживляет закрытие, но по какой-то причине не реанимирует, когда оно открывается, оно просто появляется. Это довольно длинный сценарий, так что это важный материал:Показать анимацию не анимацию
// This is the first part which is executed.
var bar = $("#bar");
// This is what happens when the bar is closes and works.
if (!supressed) {
bar.animate({height:0});
bar.parent().animate({height:0}, function() {
$(this).hide()
});
} else {
// The bar is replaced with an identical div with the same id.
bar.replaceWith(newBar);
if (supressed) {
// When the bar needs to appear again it runs the updateBar function.
updateBar(true);
}
}
А потом вот функция updateBar. #bar div просто появляется, но не будет отображаться в представлении. Я попытался переключить порядок вызовов анимации, но ни один из них не подходит к трюку.
function updateBar(reload) {
// Reassigns the variable
var bar = $("#bar");
if (reload === true) {
// This is where things go wrong.
bar.animate({height:"45px"});
bar.parent().animate({height:"45px"}, function() {
$(this).show();
});
}
}
JSFiddle: https://jsfiddle.net/1p80peqq/3/
Любые предложения?
что вы имеете в виду под «открывает обратно»? вы возвращаете значения при закрытии? –
@tq Идея состоит в том, что она будет открыта в той же усадьбе, что и закрывается. В этом примере все скрытие/показ происходит. Может быть, я заменяю элемент html после того, как он анимирован закрыт, поэтому он больше не имеет такого же свойства высоты? –
Почему вы не предоставляете http://jsfiddle.net/? –