2010-10-17 14 views
0

J'ai des onglets sur ma page. Le code pour eux suit:Onglets jquery accessibles - lien direct vers l'onglet

$('ul#tabs li a').click(function(){ 
     var id = $(this).attr('id'); 

     var counter = 1; 

     $("ul#tabs a.current").removeClass('current'); 

     $(this).addClass('current'); 

     $('.contentBox').not('.' + id).hide(); 

     $('.contentBox.' + id).show(); 

     if(id=='all'){ 
      $('.contentBox').show(); 
     } 

     $('.contentBox').removeClass('last'); 

     $('.contentBox').each(function() {   
      if(counter%4==0) { 
       $(this).addClass('last'); 
      } 

      if($(this).css('display')!='none'){ 
       counter++; 
      } 
     }); 

     return false; 
    }); 

Maintenant, je voudrais ajouter la possibilité de relier directement afin que l'utilisateur peut copier le lien vers certains onglet et le coller dans la barre d'adresse et il va à cet onglet/div de suite . Comme ceci:

TabLinkforContent1 TabLinkforContent2 TabLinkforContent3 

Atm lorsque la page est chargée, il montre l'TabLinkforContent1 et maintenant utilisateur doit cliquer par exemple le lien TabLinkforContent3 à vie sur le contenu div3. Je veux changer le code afin que l'utilisation peut copier l'adresse TabLinkforContent3 et le donner à quelqu'un et s'il utilise cette URL il montre automatiquement le contenu div3. Donc, url serait quelque chose comme www.domain.com/page#div3 je suppose. Mais je ne sais pas comment changer le code javascript.

Toute aide serait appréciée :)

Répondre

1

Étant donné que vos liens sont basés ID, vous pouvez simplement mettre cela après votre code actuel:

$(function() { 
    $('ul#tabs li a').click(function(){ 
    $("ul#tabs a.current").removeClass('current'); 
    $(this).addClass('current'); 

    $('.contentBox').show().removeClass('last'); 
    if (this.id !='all') $('.contentBox').not('.' + this.id).hide(); 

    $('.contentBox:visible').each(function(i) {   
     if ((i+1)%4==0) $(this).addClass('last'); 
    }); 
    return false; 
    }); 
    if(location.hash) $(location.hash).click(); 
}); 

Cela déclenche le gestionnaire click que vous venez lié sur la <a id="something"> l'élément identifie. Combiné avec votre code actuel raccourci:

+0

Cela ne fonctionne pas réellement. J'ai essayé en ajoutant simplement la partie if (emplacement et cela n'a pas fonctionné, et puis le code entier et les onglets ont cessé de tourner aussi – dmitri

+0

@dmitri - avez-vous un exemple de page à laquelle vous pouvez fournir un lien? –

+0

Malheureusement, son seulement sur mon atm local – dmitri