2013-05-31 22 views
-1

我使用此代碼滾動到頁面底部時,頁面加載:何時啓用滾動事件在jQuery Mobile的

$(function(){ 
$.mobile.silentScroll(someValue); 
} 

使用此代碼我不能滾動到頁面底部。發生的是,它滾動到底部半秒鐘,並再次進入默認位置。 我正在使用listview,頁腳和標頭內的身體。 我已經嘗試使用pageshow,頁面加載事件,但無法獲得所需的結果...

+0

嘗試'$ .mobile.silentScroll($('#footerID')。offset()。top);' –

+0

即使使用此代碼我也遇到了同樣的問題。我認爲這與解僱一些事件有關。 – manish

回答

1

要理解這一點,您需要了解jQuery Mobile如何工作。

某些功能無法與$(function(){使用,因爲TA至此頁面只加載到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(){觸發有一個正確的頁面高度。頁面高度僅在頁面顯示事件中才是正確的,但即使如此,您也需要稍微延遲。

+0

嘿謝謝你的回覆幫助...但我必須設置超時到2000年,使這件事情工作。我也以微妙的方式接近,但從來沒有想過setTimeout,這是一種「jugad」。 – manish