2014-01-13 48 views
0

從索引頁面,用戶單擊導航鏈接,數據屬性通過ajax傳遞,數據從服務器中檢索,但內容未在新頁面上更新。jquery mobile 1.4未更新頁面轉換內容

被困了幾個小時,真的很感謝任何幫助!

JS

$('a.navLink').on('click', function() { 
var cat = $(this).data("cat"); 
console.log(cat); 
$.ajax({ 
    url:  'scripts/categoryGet.php', 
    type:  'POST', 
    dataType: "json", 
    data:  {'cat': cat}, 
    success: function(data) { 
        var title   = data[0][0], 
         description  = data[0][1]; 
         console.log(title); 
        $('#categoryTitle').html(title); 
        $('#categoryTitle').trigger("refresh"); 
        $('#categoryDescription').html(description); 
        $('#categoryDescription').trigger("refresh"); 
    } 
}); 
}); 

即時得到正確的響應返回兩個控制檯日誌,所以我知道的作品,但無論div的categoryTitle或categoryDe​​scription正在更新。我試過.trigger('刷新'),.trigger('updatelayout')但沒有運氣!

+0

我希望看到你已經顯示的代碼發生了一些變化。你是否100%確定要更新的元素的選擇器是正確的? –

+0

是的。使用上面的代碼,它會工作,但如果我點擊後退按鈕並點擊另一個類別鏈接,它將無法工作。或者它會反覆工作幾次,但然後停止工作。但是我確實每次都得到正確的console.log響應。 – Adam

+0

它必須與頁面轉換有關,因爲當我設置相同的情況(無需導航)並更新與鏈接相同頁面上的div時,我會得到預期結果。 – Adam

回答

0

這是不是爲了一個答案(但我無法評論,但..(奇怪的SO規則)

你應該在上面的代碼工作的問題描述指定,所發生的問題,當你在這個頁面/代碼aka,使用JQM ajax導航

從我在上面的評論中理解的,你可能在每次返回頁面時都會「堆疊」ajax函數,因此得到奇怪的結果,如果什麼也沒有。

是你的考試普通代碼包裝成什麼?如果不是,(假設你使用JQM v1.4),你應該考慮把它包裝成$('body').on('pagecontainercreate', function(event, ui) {...,我試圖找出自己如何最好地玩。

簡單的解決方案,以防止堆疊的ajax定義將是創建/使用控件變量,這裏是一種方法:

var navLinkCatchClick = { 
    loaded: false, 
    launchAjax: function(){ 
    if (!this.loaded){ 
     this.ajaxCall(); 
    } 
    }, 
    ajaxCall: function(){ 
    // paste you example code here.. 

    this.loaded = true; 
    } 
} 
navLinkCatchClick.launchAjax(); 
+0

也,如果沒有必要的話,你應該得到'trigger()' – DColl

相關問題