jQuery - Animate не работает с первым кликом - PullRequest
1 голос
/ 23 января 2012

После загрузки страницы первый щелчок по #tab вызывает .replaceWith, но не .animate.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;
        }
    });
});

Ответы [ 2 ]

0 голосов
/ 23 января 2012

Трудно сказать, не видя ваш HTML и CSS, но я думаю, что animate() - это , вызываемый - проблема в том, что элемент уже позиционирован на top: 0px, поэтому есть нечего оживлять.

Разместите свой HTML и CSS, и я смогу дать более точный ответ.

0 голосов
/ 23 января 2012

Может быть, нижний колонтитул уже открыт в первый раз.Попробуйте установить значение по умолчанию переменной 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;
    }
});
...