2012-10-17 56 views
0

我使用以下JavaScript將單擊鏈接時打開的面板向右滑動。修改Javascript動畫面板中的關閉按鈕

jQuery的(函數($){

$('a.panel').click(function() { 
    var $target = $($(this).attr('href')), 
     $other = $target.siblings('.active'), 
     animIn = function() { 
      $target.addClass('active').show().css({ 
       left: -($target.width()) 
      }).animate({ 
       left: 0 
      }, 500); 
     }; 

    if (!$target.hasClass('active') && $other.length > 0) { 
     $other.each(function(index, self) { 
      var $this = $(this); 
      $this.removeClass('active').animate({ 
       left: -$this.width() 
      }, 500, animIn); 
     }); 
    } else if (!$target.hasClass('active')) { 
     animIn(); 
    } 
}); 

$('.close').click(function(){   
    $(this).closest('.panel').animate({ 
       left: -200 
      }, 500); 
}); 

});

當關閉按鈕被點擊時,面板關閉。

我需要的是,當點擊關閉按鈕時,'ACTIVE'類將從面板中移除。如果可能的話,錨點被移除。

這是因爲如果用戶再次點擊同一面板鏈接,它將不會打開。

看到這個jsfiddle

感謝

回答

2

只需添加.removeClass('active')您貼心的功能,請參閱http://jsfiddle.net/RZpbK/479/

$('.close').click(function(){   
    $(this).closest('.panel').animate({ 
       left: -200 
      }, 500).removeClass('active'); 
}); 

當我看到它,然後按預期工作的功能,但我不能明白爲什麼你想要刪除錨?那麼下次打開它就不能關閉了?

+0

好的。它可以很好地工作,而且不需要移除錨點。我曾嘗試在某些地方添加.removeClass,但我不知道在哪裏放置它。非常感謝。 –