2012-04-25 56 views
0

我正在使用pagecreate初始化事件來調用一個函數,使AJAX調用填充列表。Jquery Mobile pagecreate函數永不完成

我遇到的問題是此事件永不完成。頁面加載消息仍然存在。

我在這裏和Jquery論壇上搜索,沒有任何運氣。

我的代碼如下所示:

$("#events").live('pagecreate', function(event) { 
    // Executed once the page is loaded 
    var fromDate = new Date(), 
     toDate = new Date(fromDate.getFullYear(), fromDate.getMonth() + 3, fromDate.getDate()); 
    update(fromDate, toDate); 
    //alert('done'); 
}); 


function update(from, to) { 

    var eventList = $('ul#event-list'); 

    $.ajax({ 
     url: 'events.php', 
     dataType: 'json', 
     data: {from: from, to: to}, 
     success: function(data) { 
     showEvents(data, from, to, eventList); // Create list items and append to eventList 
     $('.value h2').formatCurrency({ negativeFormat: "-%s%n" }); // Format currency correctly using jQuery plugin 
     } 
    }); 
} 

我得到一個「a.Deferred不是一個函數」的錯誤,這表明對我來說,有事情做與AJAX調用完成,但我已經檢查過,並且showEvents函數正確地創建列表項目,所以它不會掛起。

在閱讀this之後,我嘗試了其他初始化事件:pageinit,甚至是changePage,但都沒有成功。

感謝您的幫助。

p.s.如果它有幫助,取消註釋alert()獲取更新列表以正確重新格式化,而不解決問題。我想我會提到它,因爲我顯然不明白髮生了什麼。

+0

u意思是頁面創建功能不起作用 – Warewolf 2012-04-27 04:48:48

+0

不,功能完成。麻煩的是,頁面加載消息不會被刪除,這表明頁面渲染從未完成。 – Justin 2012-04-28 10:22:46

+0

解決 - 發現我使用的是舊版本的jQuery(1.4.1) - 意有所指胖手指的版本號。 [延遲對象](http://api.jquery.com/category/deferred-object/)僅在v1.5中引入。 – Justin 2012-04-28 10:56:32

回答

0

如果妳希望在您的項目加載,然後使用 mobileinit運行 只有一次的代碼。 pageshow爲頁面的每個視圖和第一 時間pagecreate時pagecreate在您的項目。

+0

感謝王子庫馬爾,我試圖切換到pageshow,但它並沒有發揮作用。但由於該問題不僅在第二和第三頁面加載,這不是太奇怪了。 – Justin 2012-04-28 03:50:12