2017-03-08 6 views
0

Ich habe einige Fragmente, die auf Klick laden. Ich scrolle auch die Seite nach oben auf diesen Links, wie auf css-tricks gefunden. Ich erhalte die folgende Fehlermeldung: Nicht abgefangene Fehler: Syntaxfehler, unerkannt Ausdruck: # Fragment_NamejQuery nicht erkannt Ausdruck mit Hashbang

Meine js

$(function() { 
    $('a[href*=#]:not([href=#])').click(function() { 
     if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 
     var target = $(this.hash);//this is where the error is 
     target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
     if (target.length) { 
      $('html,body').animate({ 
      scrollTop: target.offset().top 
     }, 1000); 
     return false; 
     } 
    } 
    }); 
}); 

HTML

<li><a href="#!Fragment_Name">Link Text</a></li> 

I var target = $ ($ (dies versucht haben, .hash)); keine Freude

Alles funktioniert immer noch, ich will nur wissen, wie man das behebt und den Fehler von der Konsole entfernt.

Antwort

1

Sie können einfach .replace verwenden die ! zu entkommen:

$(this.hash.replace(/([!])/g, "\\$1")) 
+0

Ich ersetzte var target = $ (this.hash); mit var target = $ (this.hash.replace (/ ([!])/g, "\\ $ 1")); Der Fehler lautet jetzt Uncaught Error: Syntaxfehler, nicht erkannter Ausdruck: [Name =! Fragment_Name] –

+1

@DirtyBirdDesign Das ist Ihr zweiter Selektor ('$ ('[name =' + this.hash.slice (1) + ']'); '). Fügen Sie einfach Zitate nach dem '=' und vor ']' hinzu: '$ ('[name =' '+ this.hash.slice (1) +' ']');' –

+0

Ausgezeichnet! die Kombination der beiden funktionierte. Ich verstehe nicht, was das/[!]/G genau macht, ich weiß, dass es dem "!" aber nicht warum. Der zweite Teil, den ich bekomme, entgeht dem "#" in der Scheibe. Vielen Dank, tolle Antwort! –

-1

Dies liegt daran, dass Ihr JQuery-Selektor ein Sonderzeichen enthält. Entferne das ! von deinem href und es wird in Ordnung sein.

+0

kann nicht tun, müssen Sie die/Hash-Bang so google die AJAX Inhalt kriecht '#!'. –

Verwandte Themen