2012-10-16 6 views
6

Ich benutze dieses Skript:jQuery Tabs, wie ein Anker Sprung zu verhindern

(function() { 
    var tabContainers = $('div.tabs > div'); 
    tabContainers.hide().filter(':first').show(); 
    $(window).bind('hashchange', function() { 
     var hash = window.location.hash || '#first'; 
     tabContainers.hide(); 
     tabContainers.filter(hash).show(); 
     $('div.tabs ul.tabNavigation a').removeClass('selected'); 
     $('a[href=' + hash +']').addClass('selected'); 
    }); 
    $(window).trigger("hashchange"); 
}); 

Dieser Teil des Codes gibt mir alles, was ich brauche. Um die Registerkarte von der externen Seite zu öffnen, verwende ich zum Beispiel "index.php # first" href. Es öffnet die Seite mit Tabs mit der exakten Registerkarte geöffnet, aber es springt zum Anker, und ich muss die Seite von oben zeigen.

Weiß jemand, wie man Ankersprünge für diesen Code verhindert?

Antwort

2

Haben Sie versucht, eine return false innerhalb der Hash-Funktion ?.

Andernfalls können Sie die Verwendung echter IDs für Ihre Elemente vermeiden. Auf diese Weise wird nicht geblättert.

Aktualisierung: Da Sie jQuery verwenden, können Sie auch versuchen mit: e.preventDefault. Die Funktion muss e als Parameter

erhalten