情况如下:
给出3页:Pag_A,Pag_B和Pag_C。
用户从“Pag_A”开始,Pag_A变为“Pag_B”,Pag_B评估一些导致跳转到“Pag_C”的编码。
我已经尝试过所有JQuery Events,但没有一个让我满意。最接近的方法是使用Pag_B的'pagebeforecreate'事件,如下所示:
$(document).on('pagebeforecreate', '#Pag_B', function(e){
if (someCondition==true){
$.mobile.changePage('#Pag_C');
}
});
效果很好,除了向用户显示Pag_B ......如何在没有显示Pag_B的情况下进行平滑过渡???
我试图插入:(在$ .mobile.changePage之前('#Pag_C');)
e.preventDefault();
e.stopPropagation();
('Pag_B').remove();
所有这些都没用......
我也试过了:
'pagebeforecreate'
'pagebeforeshow'
'pagebeforecreate'
'pagecreate'
所有这些都以同样的方式存在......即,Page_B可怕的显示......
答案 0 :(得分:1)
查看api,你试过吗?
答案 1 :(得分:1)
这是最好的解决方案:
工作示例:http://jsfiddle.net/Gajotres/GPUay/
$(document).on('pagebeforechange', function(e, data){
var dummy = false;
var to = data.toPage,
from = data.options.fromPage;
if (typeof to === 'string') {
var u = $.mobile.path.parseUrl(to);
to = u.hash || '#' + u.pathname.substring(1);
if (from) from = '#' + from.attr('id');
if (from === '#index' && to === '#second' && dummy === true) {
e.preventDefault();
e.stopPropagation();
$.mobile.changePage( "#third");
}
}
});
只需使用虚拟变量,将其从true切换为false即可查看如何使用此解决方案。