4

我之前尝试过发布这个问题,但当时并没有意识到我遇到的问题来自使用 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 的香草页面上,我可以使用 1.3 库让它工作,但不能在 jsFiddle 或我的环境中(我正在调用许多其他库,例如 jQueryUI 和其他库,并且我试图调整它们被调用的顺序。)

有没有人有什么建议?

4

2 回答 2

1

因此,它似乎与 webkit 渲染和某些其他库的问题有关。

将函数包装在pageshow我的环境中不起作用,但将其包装在pagecreatedo 中,这是在 createPage 之后调用的事件。我还没有确定为什么会发生这种情况,但它确实有效。

http://jsfiddle.net/fskirschbaum/pKw2A/

但是,此解决方案在 Firefox / Gecko 渲染中中断,因此,该功能需要包装在浏览器检查中才能使其工作。显然这不是最优雅的解决方案,但它仍然是一个解决方案。

希望这将帮助其他有同样问题的人。

于 2013-03-28T16:21:42.733 回答
0

如下调用$.mobile.changePage

$(document).on('pageshow', '#home', function(){
    $.mobile.changePage('#dialog');
});
于 2013-03-28T04:59:56.560 回答