2016-06-04 8 views
6
$(document).ready(function(){ 
    $('body a').click(function(e){ 
    e.preventDefault(); 
    var goTo = $(this).attr('href').replace('#',''); 
    $('html, body').animate({ 
     scrollTop:$('a[name="'+goTo+'"]').offset().top 
    },1775); 

    window.location.hash = "#"+goTo; 

}); 

Ich habe diese Funktion in meinem Code, um einen Scroll-Effekt auf meiner Seite zu erzielen, aber ich denke, dass es meine Bildlinks betrifft. Wenn ich auf ein Bild klicke, wird es nirgendwo verlinkt. Ich bin mir ziemlich sicher, dass der Fehler hier irgendwo ist, aber ich brauche Hilfe bei der Suche.jQuery-Code, der meine HTML-Bildlinks betrifft?

Danke.

Antwort

5

Stellen Sie sicher, dass im href zuerst ein Hash vorhanden ist, bevor Sie etwas ändern, damit normale Links weiterhin funktionieren.

Eine Möglichkeit hash Eigenschaft des Elements überprüfen

if(this.hash){ 
    e.preventDefault(); 
    // rest of code shown 
} 

Kann auch Attributselektor verwenden nur mit # in href Links zum Ausfiltern

$('body a[href^=#]').click... 

Last man davon ausgeht, alle Hash-Links sind relativ und href beginnt mit

Verwandte Themen