2012-10-17 4 views
0

J'utilise le javascript suivant pour faire glisser les panneaux ouverts vers la droite lorsque les liens sont cliqués.Modifier les boutons de fermeture dans les panneaux animés Javascript

jQuery (function ($) {

$('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); 
}); 

});

Lorsqu'un bouton de fermeture est cliqué, le panneau est fermé. Ce dont j'ai besoin c'est que quand on clique sur un bouton de fermeture, la classe 'ACTIVE' est retirée du panneau. Et si possible, l'ancre est retirée. Ceci est dû au fait que si l'utilisateur clique de nouveau sur le même lien du panneau, il ne s'ouvre pas.

Voir cette jsfiddle

Merci

Répondre

2

Tout ajouter .removeClass('active') à votre fonction de fermeture, voir http://jsfiddle.net/RZpbK/479/

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

Comme je le vois alors la fonction fonctionne comme prévu, mais je ne comprends pas pourquoi vous voudrait enlever l'ancre? Puis il ne peut pas être fermé la prochaine fois que vous l'ouvrez?

+0

Ah ok. Cela fonctionne parfaitement sans enlever l'ancre aussi bien. J'ai essayé d'ajouter le .removeClass dans certains endroits avant mais je ne savais pas exactement où le mettre. Merci beaucoup. –

Questions connexes