2017-07-10 19 views
0

したがって、notificationstopicという2つのページがあります。 Topicページにはコメントがあり、すべてのコメントには一意のIDがあります。ユーザがnotificationsページ内のコメントリンクを押すと、彼はtopicページに移動し、押したコメントにスクロールします。その後のリンクはtopic/titleoftopic#comment_627のようになります。それはかなりうまくいったけど、無限のスクロールを追加して最初のいくつかのコメントだけを表示し始めたとき(残りはスクロールの下にスクロールされます)、コメントにスクロールせず、コンソールにエラーが表示されますUncaught TypeError: Cannot read property 'top' of undefinedコメントがまだ読み込まれていないためです。それを動作させる方法はありますか?私はアイディアを持っています。正確なコメントが見つかるまでスクロールし始めますが、これを実装する方法はわかりません。スクロールする方法のコードは次のとおりです。Ajax(無限スクロール)経由でロードされるはずの要素IDまでスクロール

//Scroll to the comment from notifications 
$(document).ready(function() { 
$('html, body').hide(); 

if (window.location.hash) { 

    $('html, body').scrollTop(0).show(); 
    $('html, body').animate({ 
     scrollTop: $(window.location.hash).offset().top 
    }, 800); 

} else { 
    $('html, body').show(); 
} 
}); 

アドバイスやご提案ありがとうございます。

+0

$(window.location.hash).offset()。トップがあなたの問題である –

+0

はい、私は知っている、私はコンソールのエラーからそれを得たが、私はこれをどのように修正するのですか? –

+0

ポイントは.offset()が存在しないことです –

答えて

0

動的に追加された項目については、ドキュメント全体からそのIDを見つけなければなりません。

$(document).ready(function() { 
      $('html, body').hide(); 
      if (window.location.hash) { 
       $('html, body').scrollTop(0).show(); 
       $('html, body').animate({ 
        scrollTop: $(document).find(window.location.hash).offset().top 
       }, 800); 
      } else { 
       $('html, body').show(); 
      } 
     }); 
+0

アイデアありがとう!しかし、あなたはどんな例を提供してもいいですか? –

関連する問題