在jquery中隐藏div

时间:2013-10-22 05:00:54

标签: jquery

当我点击标签时,它会显示并为相应的div设置动画。现在我希望如果我再次点击相同的标签,如果它的相应div保留20,那么它应该离开-30。 fiddle

的jQuery

$('li').click(function(e){
   var li= $(this).index()
var off= $(this).offset().top;
    $('div').each(function(){
        $(this).animate({left:'-30px',top:off},500, function(){
         $('div').eq(li).animate({left:'20px',top:off},500)
        })
    })    


})

1 个答案:

答案 0 :(得分:1)

如果我理解你的错误,你就不想在将div -30px移到左边之后使用你正在做的动画吗?

$('li').click(function(e){
    var li = $(this);
    var index = li.index()
    var topOffset = li.offset().top;
    var isOpen = li.toggleClass('open').hasClass('open');
    li.siblings().removeClass('open');
    $('div').each(function(){
        $(this).animate({ left: '-30px', top: topOffset }, 500, function(){
            if(isOpen) {
                $('div').eq(index).animate({ left: '20px', top: topOffset}, 500);
            }
        });
    });
});

演示: http://jsfiddle.net/ckDHz/3/