2013-12-22 40 views
0

我正在嘗試編寫一個backtotop按鈕,該按鈕將位於站點的站點範圍內,出於某種原因它返回「無法讀取未定義的屬性'頂部'」。 任何幫助將是偉大的,歡呼聲。jquery平滑滾動:無法讀取未定義的屬性'頂部'

JQUERY

$('#backtotop').on('click', function(event) { 
     event.preventDefault(); 
     var target = '#'+$(this).data('target') 
      $('html, body').animate({ 
      scrollTop: $(target).offset().top 
     }, 1000); 
}); 

HTML

<a href="#" data-target="navigation"><span id="backtotop"><img id="upwardarrow" src="/img/upwardarrow.png"></span></a> 

回答

1

嘗試:

var target = '#'+$(this).parent().data('target'); 

this在你的代碼是指不具有data-target跨度,你必須從訪問父母<a>

或修改HTML這樣的:

<a href="#" id="backtotop" data-target="navigation"><span><img id="upwardarrow" src="/img/upwardarrow.png"></span></a> 

移動id="backtotop"<a>標籤,並不需要更改JS。

+0

謝謝,作品,將盡快接受答案。同時,你能解釋它爲什麼起作用嗎? –

+0

我明白你的意思,根據你的更新。我沒有注意到,謝謝隊友。我將修改html。 :-) –

+0

@Jack Williams:你很好。我很高興它有幫助。 –

0

試試下面的代碼:

$("#target").click(function() { 
    $(document).scrollTop(0); 
}); 
+0

你如何設定速度? – user1380540

+0

@ user1380540你能否詳細說明你的意思是速度?您是指滾動速度還是滾動開始前的延遲? –

0

你忘了關斷了線與;
另外,我改變了目標定義。

$('#backtotop').on('click', function(event) { 
     event.preventDefault(); 
     var target = $(this).parents().attr("href"); 
     alert(target); 
      $('html, body').animate({ 
      scrollTop: $(target).offset().top; 
     }, 1000); 
}); 

測試和工作。

+0

我收到'Uncaught SyntaxError:Unexpected token;'錯誤之後.top 即使在修復此代碼不在頁面上滾動並且不會給我任何其他錯誤 – user1380540

相關問題