为什么打开一个对话太早失败w / jQuery Mobile changePage

时间:2013-05-01 20:36:51

标签: jquery-mobile dialog

我正在尝试在加载页面后立即使用JQM打开一个对话框。但是,过早地使用data-role ='dialog'调用changePage会导致对话框显示并立即关闭。当data-role ='page'时,不会发生这种情况。使用setTimeout方法可以工作,但需要很大的延迟才能确保跨移动设备/浏览器的功能。

$.mobile.changePage("#login",{role:'page'});

当role = page时,它会保持打开状态

$.mobile.changePage("#login",{role:'dialog'});

当role = dialog时,对话框会短暂闪烁然后关闭

setTimeout(function(){$.mobile.changePage("#login",{role:'dialog'});},2000);

通常使用较长的延迟,但不合需要


请参阅演示:http://jsbin.com/eredac/2

注意:Firefox中没有问题

更新:也许可以通过执行以下操作解决此问题:

将autoInitializePage设置为false,获取url哈希,将活动页面设置为对话框(默认,第一页),手动初始化,当对话框完成时调用changePage并将url哈希作为目标?

这样的事情:

http://jsbin.com/eredac/9

但是没有过渡动画就显示了对话框。我更喜欢另一种方式,但是不能接受> 1s延迟。因此,如果没有办法在正确的时间触发,我可能会满足于此。也许试着至少淡出对话? (编辑:添加淡入。对该结果中等满意。)

0 个答案:

没有答案