2012-01-19 11 views
3

當頁面完全加載時,我想默默地滾動窗口,因此我在initPage監聽器中調用silentScroll。但是,它不起作用,不滾動。jquery-mobile:silentScroll無法從initPage工作

$('#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文檔。

有了這個,自動滾動的作品,但它的醜陋:

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

執行螢火蟲/ Chrome瀏覽器開發工具$.mobile.silentScroll(8000);也工作正常,只是沒有在initPage。當我在initPage中顯示js警報時,它正在顯示。但滾動只是沒有正確執行。也許是一個jqm錯誤?

+0

也許嘗試這句法回調$( '#炫魅廣東')生活( 'pageinit',函數(){$ .mobile.fixedToolbars.setTouchToggleEnabled(假); $ .mobile.silentScroll(800); }); –

回答

-1

詳細回答這個問題在這裏: https://github.com/jquery/jquery-mobile/issues/3461

+0

使用'pageshow'。如果您只想讓它滾動首次查看,請設置一個標誌。 – Jasper

+0

我也嘗試了pageshow,但它也沒有工作。該頁面更長,通過JS,使用jqm的appendTo()進行DOM操作。也許這就是問題所在。 –

+0

你是否能夠理解@Mathias Lin。我面臨同樣的問題 – vijar