Blättern Sie auf Radio Click zur Abschnitts-ID
Ich versuche, die Seite je nach Radio-Klick zu einer bestimmten Abschnitts-ID zu scrollen.
Derzeit erhalte ich die Fehlermeldung: Uncaught TypeError: Cannot read property 'top' of undefined
Ich dachte, ich hätte es definiert, ich kann console.log(this.id);
den richtigen Wert verwenden und erhalten, muss aber etwas falsch herum haben!
Hier ist der JSfiddle- Link
Vielen Dank!
Sie können Ihr HTML wie folgt erstellen:
<input type="radio" value="1" name="selection">1
<input type="radio" value="2" name="selection">2
<input type="radio" value="3" name="selection">3
<input type="radio" value="4" name="selection">4
Sie sollten value
hier stattdessen ein Attribut verwenden id
, da Sie für die Abschnitte dieselben IDs verwenden. Sie sollten eindeutige IDs haben, da dies zu Verwirrung und Problemen führen kann. Jetzt 1,2,3,4
gehören IDs nur noch zu den Abschnitten.
Und im Code, zu dem Sie scrollen "#"
möchten , müssen Sie ihn anhängen, bevor Sie die Abschnitts-ID auswählen, zu der Sie scrollen möchten.
$(document).ready(function() {
$('input:radio[name=selection]').change(function()
{
$('html,body').animate(
{
scrollTop: $('#'+this.value).offset().top
}, 1000);
});
});