После загрузки страницы первый щелчок по #tab вызывает .replaceWith, но не .animate.И .replaceWith, и .animate работают правильно со второго нажатия.
#tab
.replaceWith
.animate
Есть идеи?
$(function() { var open = false; $('#tab').click(function() { if(open === false) { $('#footer').animate({ top: '0px' }); $('#openFooter').replaceWith('<h3 id="closeFooter">Click to Close</h3>'); open = true; } else { $('#footer').animate({ top: '-85px' }); $('#closeFooter').replaceWith('<h3 id="openFooter">Click to Open</h3>'); open = false; } }); });
Трудно сказать, не видя ваш HTML и CSS, но я думаю, что animate() - это , вызываемый - проблема в том, что элемент уже позиционирован на top: 0px, поэтому есть нечего оживлять.
animate()
top: 0px
Разместите свой HTML и CSS, и я смогу дать более точный ответ.
Может быть, нижний колонтитул уже открыт в первый раз.Попробуйте установить значение по умолчанию переменной open равным true.
open
true
var open = true; $('#tab').click(function() { if(open === false) { $('#footer').animate({ top: '0px' }); $('#openFooter').replaceWith('<h3 id="closeFooter">Click to Close</h3>'); open = true; } else { $('#footer').animate({ top: '-85px' }); $('#closeFooter').replaceWith('<h3 id="openFooter">Click to Open</h3>'); open = false; } });