jquery mobile data-transition =“slide”在使用document.location.href =“”时不起作用;而不是href =“”

时间:2012-06-04 10:16:05

标签: jquery android jquery-mobile

我目前正在尝试使用jquery mobile开发移动网站。 而不是href=""我正在使用onclick="document.location= ""链接..

[example
<a onclick="document.location ='index.html';" title="back" data-transition="slide">Back</a>]

但数据转换不适用于此document.location.href="" .. 有没有解决方案,以便在使用onclick="document.location= "" ..

时可以获得相同的过渡效果

并且position:fixed属性在android中也不起作用..是否有任何解决方案以便它可以在同一个...

2 个答案:

答案 0 :(得分:5)

这是因为Jquery Mobile拦截您的常规链接,然后通过AJAX加载页面。这样才有可能,因为所有过渡效果(包括SLIDE)都需要两个页面在DOM中

以下是JQM's navigation model

的链接

正如您所看到的,JQM劫持了一个链接,对新页面进行了AJAX调用,并在此页面上加载了 div.data-role =“page”中的内容。新页面将附加到DOM,因此您的文档中有2个页面。

然后根据您的过渡设置新页面位置(例如,在视口外部的屏幕左上角)。然后发生转换,该转换在旧页面上方的新页面中滑动。完成后,隐藏旧页面。

如果您正在执行 document.location ,JQM将不会拦截并只加载您所说的页面而不需要任何Ajax,因此没有任何转换。这与在链接上指定rel =“external”相同。那么它也将是一个没有过渡的“正常”链接。

简而言之: 如果您使用的是document.location,则表示您没有使用Ajax,也不会有任何转换

答案 1 :(得分:0)

理想情况下,第一点不应该在锚标记中使用onclick。 使用像这样的东西

<a href="javascript:loadPage('admin-list-notification.html?');" data-role="button" data-theme="a">Notification</a>