jQuery - Animate无法使用第一次点击

时间:2012-01-23 17:10:06

标签: jquery jquery-animate

加载页面后,首次点击#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 :(得分:0)

可能是页脚已经是第一次打开了。尝试将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;
    }
});

答案 1 :(得分:0)

很难说没有看到你的HTML和CSS,但我最好的猜测是animate() 调用 - 问题是该元素已经定位到{{1} ,所以没有什么可以动画的。

发布您的HTML和CSS,我可以提供更明确的答案。