有没有办法在Webkit浏览器上使用jQuery 1.3.0获取$ .mobile.pageCreate?

时间:2013-03-27 20:31:02

标签: jquery html jquery-mobile

我之前尝试发布过这个问题,当时我没有意识到我遇到的问题来自于使用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和其他库,我试图调整它们的调用顺序。)

有人有任何建议吗?

2 个答案:

答案 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');
});