これを理解するには、jQuery Mobile がどのように機能するかを理解する必要があります。
一部の機能は では使用できません。$(function(){
この時点では、ページは DOM にロードされるだけであり、jQuery Mobile はそのページで何も開始していません。この問題を解決するために、jQM 開発者はpage eventsと呼ばれるものを作成しました。
基本的$.mobile.silentScroll
に、正しいページ イベント中にのみ使用できます。ただし、その場合でも、settimeout を使用するには、わずかな遅延を使用する必要があります。サイレント スクロールは、ページ ショーで使用するために作成されたものではありません。
$(document).on('pageshow', '#index', function(){
setTimeout(function(){
$.mobile.silentScroll(1500);
},100);
});
作業例: http://jsfiddle.net/Gajotres/2xfrM/
$(function(){
あなたの場合、トリガー中にページのページの高さが正しくないため、ページが戻ってきます。ページの高さは pageshow イベントの間だけ正確ですが、それでもわずかな遅延が必要です。