2016-07-28 14 views
0

Ich habe eine Seite mit Bootstrap-Registerkarten, die ich von externen Seiten verknüpfen möchte. So kann ich sofort auf den Inhalt meines Interesses zugreifen.Jquery .hash funktioniert nicht auf Bootstrap-Registerkarten

Obwohl ich viele Fragen in der Materie gelesen habe, kann ich das Ziel nicht wirklich erreichen. Ich habe diesen Code geschrieben, die für mich nicht funktioniert:

var hash = document.location.hash; 
if (hash) { 
    $('.nav-tabs a[href='+hash+']').tab('show'); 
} 
// Change hash for page-reload 
$('.nav-tabs a').on('shown.bs.tab', function (e) { 
    window.location.hash = e.target.hash; 
}); 

Und mein HTML ist die folgende

<ul id="profile-tabs" class="nav-tabs"> 
    <li class="active"><a href="<?php echo get_permalink(); ?>#general-informations" data-toggle="tab"><?php _e("General Info",'Mytheme');?></a></li> 
    <li class=""><a href="<?php echo get_permalink(); ?>#other" data-toggle="tab"><?php _e("Other",'Mytheme');?></a></li> 
</ul> 

Ich denke, dass vielleicht in die falsche Art und Weise bin ich mit .hash. Können Sie mir helfen oder ähnliche Antworten vorschlagen? Ich meine, ich habe fast alle ohne Erfolg gelesen. Danke.

Antwort

1

Ihr CSS-Selektor ist falsch. Sie versuchen, Äpfel und Orangen zusammenzubringen.

Wenn der erste Anker des Tags href Attribut http://localhost/somehwhere/#general-informations und Ihre URL-Leiste gesetzt wurde beendet mit #general-informations dann CSS-Selektor, a[href='+hash+'], Direktspiel zu tun versuchen würde. Leider ist die Zeichenkette http://localhost/somehwhere/#general-informations nicht gleich der Zeichenkette #general-informations.

Was Sie wollen, ist die CSS endet mit Selektor: $=, verwenden Sie diese:

$('.nav-tabs a[href$="'+hash+'"]').tab('show'); 

Dies wählt alle Anker-Tags mit einem href-Attribut, das mit dem Wert der hash Variable endet.

+0

Sehr hilfreich Jim, danke! – XiLab

+1

Ich bin froh, dass ich helfen konnte – Jim

Verwandte Themen