2016-05-20 3 views
0

Was ist mein Fehler dort?Js Syntax (?) Fehler

$(document).ready(function(){ 
    $('a').on('click', function(){ 
     var GetaName = $(this).attr('href').split('#'); 
     $('html,body').animate({scrollTop : $('a[name ='+GetaName[1]+']').offset().top},1000); 
    }); 
}); 

Fehler:

enter image description here

+0

Ist '$ ('a [name =' + GetaName [1] + ']')' etwas zurückgeben ? – Pete

+0

Es ist nicht in der Lage $ zu erkennen ('a [name =' + GetaName [1] + ']') –

+0

Nicht sicher, ob es einen Unterschied machen wird, aber versuchen Sie, das Leerzeichen vor dem '=' zu entfernen fügen Sie 'e.preventDefault()' zu Ihrem click-Ereignis hinzu, sonst springt Ihre Seite zu irgendetwas mit dieser ID – Pete

Antwort

0

Sie haben einen falschen Wähler gebaut, ist der Wert des Elements name muss in den doppelten Anführungszeichen angegeben werden. So richtige Code ist

$(document).ready(function(){ 
    $('a').on('click', function(){ 
     var GetaName = $(this).attr('href').split('#'); 
     $('html,body').animate({scrollTop : $('a[name="'+GetaName[1]+'"]').offset().top},1000); 
    }); 
}); 

Alle oben ist gültig, wenn die Seite enthält Element mit dem Selektor 'a[name="'+GetaName[1]+'"]'

+0

Sorry, aber es funktioniert nicht .. sieh dir diesen Link an http://www.backlabel.com/48- träumerisch und versuchen, in einem Produkt (MIT FIREFOX) den Fehler immer noch dort angezeigt .. –

+0

Links dort haben keine Hash-Attribut in ihren hrefs, so 'GettaName [1]' ist eine leere Zeichenfolge und natürlich jQuery kann es – MysterX

+0

und nicht finden was ich tun muss? –