2

我有一个 div 需要在单击按钮时向上/向下设置动画,并且,如果它已向下(或打开)动画,则在单击主体时必须关闭。这很好用,但是如果我使用主体将其关闭,则切换按钮在第一次单击时将不再起作用。我希望有一个简单的解决方法,非常感谢任何帮助,谢谢!

$('#button').toggle(function(event){
        event.preventDefault();
        $('#box').animate({top: '0'}, 300);
    },function(event){  
        event.preventDefault();    
        $('#box').animate({top: '-100px'}, 300);
    });

    $("body").click(function(event) {
        if ($(event.target).closest('#box').length === 0) {
            $('#box').animate({top: '-100px'}, 300);
        }
    });

http://jsfiddle.net/user1688604/ve7VA/1/

4

1 回答 1

1

toggle不推荐使用事件方法,您可以使用click方法代替。使用clickand 和一个条件语句可以解决这个问题。

$('#button').click(function (event) {
    event.preventDefault();
    var $box = $('#box'),
        val = $box.css('top') === '0px' ? '-100px' : '0px';
    $box.stop().animate({
        top: val
    }, 300);
});

http://jsfiddle.net/Wdjys/

于 2013-03-19T18:10:54.203 回答