2010-12-21 26 views
5

我想了解自己的jQuery Mobile。我認爲這很酷,但我堅持了一些東西。如果我想這樣稱呼:

$j.mobile.changePage({ url: $j("#News"), data: "apple=banana", type: "GET"}, "slide", true, true); 

它似乎不起作用。我並不知道用jQuery傳遞數據,所以mayby我做錯了什麼。

親切的問候,Senne

編輯:對不起,把錯誤的代碼在那裏...

+0

我認爲這是一個錯誤。因爲這確實有效 - > url:「#News」< - 但不正確(我被重定向到同一頁面) – iSenne 2010-12-21 15:27:35

回答

1

據我所知 - url必須是一個真正的URL 的另一div[data-role=page]

一個id

澄清:

提供了一個ID顯示了另外的div是當前文檔(您可以在其中創建具有多頁的HTML文件)avaliable。

另外 - jquerymobile只加載一次頁面,並將其添加到文檔中供以後參考。稍後將不會觸發服務器端操作。 (我不知道如何處理與提供的數據調用)基於試驗和錯誤

+0

我嘗試了一個ID,可以工作,但不會加載頁面! – iSenne 2010-12-22 11:32:34

1

,這是我看到的情況:

  • $ .mobile.changePage(「#」 + id,filter,false,true)刷新當前視圖,但不執行服務器上的請求
  • $ .mobile.changePage({url:'#'+ id,data:'code = apple = banana ',輸入:'GET'},'slide',false,true)不刷新當前視圖,但在服務器上執行請求
  • $ .mobile.changePage({url:'http://localhost/SomeOtherPage.aspx',data:'code = apple = banana',type:'GET'},'slide',false,true)刷新當前視圖並在服務器上執行請求

因此,似乎基本URL必須不同才能在服務器上執行時更新當前視圖。

0

我遇到了一個場景,我需要捕獲項目上的輕擊事件,並顯示一個加載的頁面(同一個html文件),其中包含點擊項目的詳細信息。我找到了解決辦法是半依賴於幾件事情,但是:

  • 你的.js方案應包含至少一個「命名」,或財產內關全局的對象,爲防止寫入過任何重要的東西全局對象或由外部代碼寫入。
  • 您的數據必須已存在於.js對象中,或者可以通過其他方式訪問。

附加輕敲事件的元素導致頁面過渡(甚至INA功能導致有問題的網頁轉換)允許你創建如下的功能:

function PageTransitionHandle(oEvent) 
{ 
    // Set your stored data to a global object 
    oYourNamespace.DataObject = oDataObject; 

    // not necissary if already linked to other page but useful when attaching to 
    // an image or other element 
    $.mobile.changePage("#otherPageId"); 
} 

,並在pageshow事件下一頁:

function PageInit() 
{ 
    var oPageData = oYourNamespace.DataObject; 
    // Handle using data from here (i.e calling webmethod using parameters 
    // or setting data according to object) 
} 

由於使用了ajax加載方法,因此可能會使用外部頁面和內部頁面,但我沒有經過測試。這對於傳遞參數或者甚至是整個數據對象來定義其他領域,或者讓用戶信息跟隨它們非常有用。

看看另一條路線是Local Storage但我沒有親自在這個看起來還得多