2016-09-21 5 views
0

Ich habe ein scheinbar einfaches Problem, zu dem ich heute keine Lösung finden konnte. Wie kann ich ein Lesezeichen erstellen (z. B. example.com/somepage #mybookmark), das Elemente unter einer JavaScript-Registerkarte automatisch öffnet, z. B. die für die Verwendung auf w3schools vorgeschlagenen Registerkarten?So erstellen Sie einen HTML-Lesezeichenanker für eine JavaScript-Registerkarte

Ich habe versucht, einige id s zu den <li> Elemente Zuordnung der Laschen bilden, zum Beispiel:

<li id="mybookmark"><a href="#" class="tablinks" onclick="openCity(event, 'London')">London</a></li> 

und sogar einen Ankernamen, zB:

<li><a name="mybookmark" href="#" class="tablinks" onclick="openCity(event, 'London')">London</a></li> 

aber das beste Ergebnis, das ich bekam so weit beim Versuch, example.com/somepage#mybookmark war nur die Registerkarte zu markieren, ohne den zugehörigen Inhalt zu öffnen (was ist, was ich eigentlich will).

Ich nehme an, dass die Antwort in etwas JavaScript-Code liegt, aber könnte jemand vorschlagen, wie es aussehen sollte?

+1

Sie müssen den URL-Hash beim Laden der Seite lesen und das entsprechende JS ausführen. – DBS

+0

Versuchen Sie Bootstrap-Registerkarten, Tutorial ist hier ---> http://www.tutorialrepublic.com/twitter-bootstrap-tutorial/bootstrap-tabs.php –

Antwort

1

versuchen, etwas wie folgt aus:

$(function() { 
    $(".tab-content").hide().first().show(); 
    $(".yourNav li:first").addClass("active"); 

    $(".yourNav a").on('click', function (e) { 
    e.preventDefault(); 
    $(this).closest('li').addClass("active").siblings().removeClass("active"); 
    $($(this).attr('href')).show().siblings('.tab-content').hide(); 
}); 

    var hash = $.trim(window.location.hash); 
    if (hash) $('.inner-nav a[href$="'+ hash + '"]').trigger('click'); 
}); 

Grundsätzlich würden Sie die .click() der Registerkarte basieren zwingt auf die URL bilden die # auf. Der obere Teil dieser Sie sagte, Sie haben bereits, d. H. Tabs öffnen gut und all das, es ist der zweite Teil, wo die var hash = erklärt wird. Lass es mich wissen und viel Glück.

+0

Danke für die Beantwortung. Leider kann ich es nicht zum Laufen bringen, obwohl ich das Prinzip verstehe, den Tab zu zwingen, angeklickt zu werden, wenn die Anfrage ein # hat. Hier ist meine JS-Funktion, die gut funktioniert (aber zeigt nicht den Inhalt der Tabs, wenn Tab als Lesezeichen, natürlich angefordert wird): http://pastebin.com/wwj5eSJj Irgendwelche Gedanken? – Chris

Verwandte Themen