2012-01-19 4 views
3

ページが完全に読み込まれたときにウィンドウをスクロールしたいので、initPageリスナー内でsilentScrollを呼び出します。ただし、スクロールしても機能しません。jquery-mobile:initentPageからsilentScrollが機能しない

$('#mainPage').live('pageinit', initPage); 

function initPage() { 
    $.mobile.fixedToolbars.setTouchToggleEnabled(false); 
    $.mobile.silentScroll(800); 
    .... 

私が動作させる唯一の方法は、setTimeout経由で呼び出すことですが、なぜですか? pageinitが実行されると、http://jquerymobile.com/demos/1.0/docs/api/events.htmlのjqmドキュメントを参照してページを準備する必要があります。この、自動スクロール作品で

、それは醜いです:Firebugの/クロームdevのツールで$.mobile.silentScroll(8000);を実行

setTimeout(function(){$.mobile.silentScroll(8000);}, 1000); // scroll after 1 sec 

もただではないinitPageで、[OK]を動作します。 initPageにjsアラートを表示すると、それが表示されます。しかしスクロールは正しく実行されていません。たぶん、jqmのバグですか?ここでこの質問へ

+0

は多分、コールバック$( '#のメインページ')のために、この構文を試してみてください( 'pageinit'(機能を生きる){$ .mobile.fixedToolbars.setTouchToggleEnabled(。 false); $ .mobile.silentScroll(800); }); –

答えて

-1
+0

'pageshow'を使用してください。最初の表示をスクロールさせたい場合は、フラグを設定します。 – Jasper

+0

私はページショウも試みましたが、それもうまくいきませんでした。より長いページは、jsmのappendTo()を使用してJS、DOM操作を介して構築されます。多分それが問題です。 –

+0

あなたはそれを@Mathias Linから理解できましたか?私は同じ発行に直面している – vijar