【问题标题】:Jquery Mobile pagecreate function never completesJquery Mobile pagecreate 功能永远不会完成
【发布时间】:2012-04-25 07:06:20
【问题描述】:

我正在使用 pagecreate 初始化事件来调用一个函数,该函数通过 AJAX 调用来填充列表。

我遇到的问题是这个事件永远不会完成。页面加载消息仍然存在。

我在这里和 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,都没有成功。

感谢您的帮助。

附言如果它有帮助,取消注释 alert() 获取更新的列表以正确重新格式化,而不解决问题。我想我会提到它,因为我显然不明白发生了什么。

【问题讨论】:

  • 你的意思是页面创建功能不工作
  • 不,功能完成。问题是页面加载消息始终没有被移除,提示页面渲染从未完成。
  • 已解决 - 发现我使用的是旧版本的 Jquery (1.4.1) - 一定是粗手指了版本号。 Deferred objects 仅在 v1.5 中引入。

标签: jquery-mobile initialization


【解决方案1】:

如果你想跑步 该代码仅在您的项目加载时使用一次然后使用 移动初始化。 pageshow 用于页面的每个视图,pagecreate 用于第一次 在您的项目中创建页面的时间。

【讨论】:

  • 感谢库马尔王子,我尝试切换到 pageshow,但没有任何作用。但由于问题不仅出现在第二页和第三页加载上,因此也就不足为奇了。
猜你喜欢
  • 2018-10-14
  • 1970-01-01
  • 2017-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多