我目前正在尝试使用 jquerymobile + phonegap 应用程序。我的问题集中在 jquerymobile 框架上。
我想切换到一个动态加载的页面(通过 jsonp),并且我想在转换中看到加载的内容。目前它正在进行过渡,然后显示内容。(因为我正在使用 pagebeforeshow 事件将数据添加到 dom。)
在触发 changePage 事件之前,我通过 jsonp 加载了内容。所以我的数据已经在那里了。现在我需要在执行转换之前将该数据放入 dom 中。我试图在jqm的changePage函数中找到合适的位置来触发一个事件,并在过渡之前触发它。但是内容没有显示在过渡中。
这就是我加载列表的方式(效果很好)
function getList() {
$.mobile.loading( 'show');
var req = $.ajax({
url : serviceURL + 'canteenParser2.php?type=getAllCanteens&callback=?',
dataType : "jsonp",
async : false,
cache: false,
timeout : 10000
});
req.success(function(data) {
globalAjaxData = data;
$.mobile.changePage('mensa.html',{showLoadMsg: false,
transition: 'slidefade'}
);
});
req.error(function() {
alert('Oh noes!');
});
}
这就是我显示数据的方式:
function showList()
{
mensaList = globalAjaxData;
$.each(mensaList, function(index, mensa) {
$('#mensaList').append('<li><a href="mensadetails.html?id=' + mensa.id + '" data-transition="slidefade">' +
'' + mensa.name + '</a></li>');
});
$('#mensaList').listview('refresh');
}
我目前正在调用 showList() 方法:
$('#mensaListPage').live('pageshow',function(event){
showList();
});
正如我提到的,我尝试了例如 pageload 事件和 pagebeforeshow 事件。有没有人建议如何实现所需的行为?
问候莫里茨
更新
我发现我需要在 ajax 加载调用之后、转换之前调用 showList Methode:
$$('#mensaListPage').live('pagebeforeshow',function(event){
showList();
});
这适用于幻灯片过渡,但不适用于幻灯片淡入淡出过渡。(但幻灯片过渡最终在我的移动应用程序中闪烁。因此,我使用了幻灯片淡入淡出。)
希望有机会解决其中一个问题。;)