我之前尝试发布过这个问题,当时我没有意识到我遇到的问题来自于使用jQuery 1.3.0库。
我正在尝试使用jQuery mobile在页面上创建一个没有用户交互的对话框。它适用于FireFox,但在所有webkit浏览器中都失败,包括Safari,Mobile Safari和Chrome。
以下是此问题的示例:http://jsfiddle.net/fskirschbaum/2YTwE/
$.mobile.changePage( '#dialog' , { transition:"pop", role:"dialog" });
我尝试了几种不同的方法让这个东西正常工作,我觉得我正在把头撞到墙上。它可以工作,如果您将库基础更改为1.2.0,所以它似乎是1.3.0的问题,但我没有看到其他任何人似乎有这个问题。
编辑:我已经尝试将此附加到几个事件而没有任何成功,包括:pagecreate,pageinit,pageload等。这似乎没有帮助。我还要指出,这似乎是一个问题,这个库崩溃到另一个库,在一个只有jquery和jquery mobile的vanilla页面上,我可以使用1.3库来实现这一点,但不能在jsFiddle或我的环境中使用(我正在调用许多其他库,例如jQueryUI和其他库,我试图调整它们的调用顺序。)
有人有任何建议吗?
答案 0 :(得分:1)
因此,它似乎与webkit呈现和某些其他库的问题有关。
在pageshow
中包装该函数对我的环境不起作用,但将其包装在pagecreate
中,这是在createPage之后调用的事件。我不确定为什么会发生这种情况,但确实有效。
http://jsfiddle.net/fskirschbaum/pKw2A/
然而,这个解决方案在Firefox / Gecko渲染中断了,因此,需要将该函数包装在浏览器中以使其工作。显然这不是最优雅的解决方案,但它是一个解决方案。
希望这可以帮助其他人遇到同样的问题。
答案 1 :(得分:0)
如下所示致电$.mobile.changePage
。
$(document).on('pageshow', '#home', function(){
$.mobile.changePage('#dialog');
});