2013-06-25 104 views
0

我正在使用jQuery移動的網站上工作。在一個包含鏈接列表的頁面中,我需要將一個查詢字符串參數附加到指示頁面大小的超鏈接(通過javascript獲取)。所以,鏈接將查詢字符串添加到頁面加載jQuery移動的href網址

/view/id:1 

應該成爲

/view/id:1?size={sizeInPixels} 

的標記的名單看起來是這樣的:

<li><a data-ajax="false" class="imagelink" href="/view/id:2840"><h2>text here</h2></a></li> 
<li><a data-ajax="false" class="imagelink" href="/view/id:2841"><h2>text here</h2></a></li> 

的JavaScript是:

$(document).on('pageinit', '[data-role="page"]', function() { 
     var newSize = $(window).height()*.8; 
     newSize = parseInt(newSize); 
     $("a.imagelink[href!='ignore']").each(function() { 
       this.href += '?size=' + newSize; 
     }); 
}); 

當頁第一次訪問,大小參數是未附加;如果頁面刷新,它工作正常。

如何在用戶第一次加載頁面時獲取大小參數?

+0

如果您仍有問題,可以嘗試我的[插件](https://github.com/CameronAskew/jquery。 mobile.paramsHandler),它允許jQM頁面加載URL參數,並在URL中維護這些參數,以便頁面刷新/等工作正常。 –

回答

1

所以基本上你有一個圖像鏈接列表,你想給大小信息,以便他們可以重新調整服務器端的大小,以考慮顯示器的高度。爲了達到這個目的,你運行一個腳本客戶端來轉換這些鏈接的href以包含這個querystring參數。

恐怕您的腳本可能在鏈接進入DOM之前運行,導致您的腳本第一次(當所有事情仍然需要加載時)失敗並且第二次(當它來自緩存時)運行。

編輯:我刪除了腳本(因爲它是jQuery而不是jQuery手機)。看看Stano在評論中提供的以下網址:Difference between $(document).ready and $(document).on('pageinit')http://jquerymobile.com/demos/1.2.0-alpha.1/docs/api/events.html

+1

感謝@IvanL的參考。我以前讀過@Stano第二次引用的文檔,但仔細閱讀有助於閱讀。我已經將javascript代碼片段中的第一行更改爲'$(document).bind('pageinit','[data-role =「page」],function(){',似乎解決了這個問題。 ! – Sonorus

相關問題