2012-04-25 58 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