2016-06-06 17 views
0

Ich habe eine WordPress-Website und Probleme mit Ankern. Ich habe eine Seite mit mehreren Ankern, die im Hauptmenü verlinkt sind. wenn ich auf der Seite selbst bin, funktionieren alle Anker gut, aber wenn ich auf einer anderen Seite bin, funktionieren sie nicht, zumindest nicht in allen Browsern und die Anker werden ignoriert.jquery ankern auf Seite laden

Wie informiert es ist ein Chrom Fehler, gefunden ive diese Lösung:

<script type="text/javascript"> 

jQuery(window).load(function(){ 
    var hashNum = 0; 
    if (window.location.hash != ''){ 
     hashNum = window.location.hash.replace("#oneofmanyanchors", ""); 
     console.log('hashNum: ' + hashNum); 
    }; 
    hashMenu = jQuery('[data-q_id="#oneofmanyanchors"]').offset().top; 
     jQuery('html,body').animate({ 
      scrollTop: hashMenu 
    }, 0); 

}); 

</script> 

obige Code funktioniert und behebt die Probleme, die ich in Chrom und ff hatte.

aber ich brauche diese zusätzliche Funktionalität: Im Moment adressiert es nur einen bestimmten Anker, aber ich brauche es mit allen Ankern in der Seite URL, nicht nur die oben genannten (Anker sind mit der Daten-q_id verwiesen Attribut).

Der Code muss also so aktualisiert werden, dass er einen beliebigen Anker aus der Seiten-URL übernimmt und nach dem Laden der ersten Seite über jquery zu diesem Anker (einmal) blättert.

Wie erreiche ich das?

Vielen Dank im Voraus!

PS: Das Problem wird durch Thema Unvereinbarkeit mit einem bestimmten Plugin verursacht ich brauche ...

+1

Sie meinen, wenn Sie auf diese Seite von einer anderen Seite kommen, ist es nicht auf den Abschnitt in der ‚Hash‘ erwähnt wird blättern? –

+0

möglich duplizieren http://stackoverflow.com/questions/37606128/anchor-tag-in-chrome-not-working-properly-this-a-chrome-bug/37606439#37606439 –

+0

Genau, aber sobald ich auf der Seite und Klicken Sie auf das Menü Link mit dem Anker es funktioniert. Also muss ich das Menü in js simulieren. – Mella

Antwort

0

Ich denke, das in jedem Browser funktionieren soll - was passiert, das Problem zu sein?

Um dies in jquery zu erreichen, sollten Sie mit javascript zum Element/anchor blättern, sobald das Dokument geladen ist.

So wie folgt aus:

$(function() { 
    location.hash = "#" + hash; 
}); 

Ich denke immer noch, sollten Sie herausfinden, was schief gelaufen ist und warum die Linken von einer anderen Seite funktioniert nicht in einigen Browser, bevor eine Lösung für das Problem mit. Dein Code wird einfach immer unordentlicher.

How to scroll HTML page to given anchor using jQuery or Javascript? und hier $(document).ready shorthand

+1

Nun, ich weiß und du hast sicherlich Recht, aber das würde meinen Rahmen sprengen, also es ist entweder nicht funktionierende Anker oder mehr Code. Ich kann mit ihm leben. Thema Autor sagt "Kontakt Plugin Autor" und jetzt können Sie erraten, was der Plugin-Autor sagt .... genau das gleiche umgekehrt – Mella