2012-09-05 20 views
1

我有兩個頁面,p1.htmlp2.html與jQuery Mobile。將參數傳遞給jQuery Mobile中的頁面

p1.html有一些鏈接,所有鏈接都導航到p2.html但有一點區別。

我想一個int參數傳遞給p2.html的JavaScript(例如,鏈接數),因此,一個JavaScript代碼p2.html的基礎上,int參數(過渡開始之前)沒有多大的變化本身。

我想使用Ajax導航功能和jQuery Mobile的轉換,而且我不想使用頁面錨點(p2.html#6)。

如何將該參數發送到p2.html

+0

退房此線程,它可能如果你想GET參數幫助你:http://stackoverflow.com/q/5448545/467164 –

+0

@ZathrusWriter如果我使用該方法,JQM將多次下載該頁面(每次鏈接一次),因爲URL不同,但所有鏈接的html內容相同。所以它應該被下載一次...('p2.html'是一個大頁面,並且不應該**被多次下載...) –

+0

@ZathrusWriter p2.html'中的小小差異應該由客戶端邊javascript代碼。 –

回答

2

你能使用cookie保存相關信息?

獲取cookie jquery plugin

p1.html

<a href="p2.html" data-p2data="1">Link 1</a> 
<a href="p2.html" data-p2data="2">Link 2</a> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $('a[data-p2data]').click(function(){ 
     $.cookie('p2data', $(this).data('p2data')); 
    } 
} 
</script> 

p2.html

<script type="text/javascript"> 
    var p2data = $.cookie('p2data'); 
    // .. process the page based on the value in p2data. 
</script> 
+0

我會說使用cookie來發送頁面之間的參數有點矯枉過正,考慮到它們被用作永久存儲 –

+2

@ZathrusWriter但是這種方法也適用於B級瀏覽器,它不支持Ajax導航... –

+0

@AndrewR你能提供一個cookie jquery插件的鏈接嗎? (我發現了幾個插件,我不知道你是哪一個插件) –

1

您可以使用全局變量來存儲數字值當page1.html鏈接點擊:

$('a.special_link').click(function() {window.my_id = this.id}); 

...你會那麼能夠page2.html檢索這一點,因爲JQM採用AJAXed導航默認情況下,從而保持與該變量在單個頁面上仍然可以訪問:

$('document').on('pagebeforechange', function(toPage, data) { 
    if (toPage == 'page2.html') { 
     alert('you have clicked on link number: ' + window.my_id); 
    } 
}); 
+0

似乎是最簡單的答案... –