jquery手机和phonegap javascript没有运行点击,怎么样?

时间:2012-01-28 09:56:08

标签: javascript jquery redirect cordova hyperlink

我有一个index.html文件,其中包含:

document.addEventListener("deviceready",onDeviceReady,false);
function onDeviceReady(){
var deviceuid = device.uuid; // gets the phoneid
alert('index');
checkUser(deviceuid); // this is some function i made
}

如果一切正常,我会加载另一个名为page1.html的页面,其中包含一些文字和链接:

<a href="page2.html">Page 2</a>

page2.html有一些其他文字以及返回主页的链接:

 <a href="index.html">Go to Index</a>

当我启动应用程序时,我可以看到警报和其他脚本正在运行,但是当我点击链接返回到index.html时,页面变为空白并且没有显示警报

任何想法?我是否必须运行其他一些刷新页面的代码?

编辑:

我可以使用:<a href="#" onClick="document.location = 'index.html';" >Go To Index</a>

但它似乎只能在浏览器

中在移动设备上运行

1 个答案:

答案 0 :(得分:1)

您正在描述标准浏览器行为。但是jQuery mobile按照AJAX执行页面加载默认设置,请参阅http://jquerymobile.com/demos/1.0.1/docs/pages/page-links.html

这意味着加载了第一页(“index.html”)并执行了onDeviceReady。当您单击指向第二页(“page2.html”)的链接时,将按照AJAX加载此页面,将其插入到第一页的DOM中并显示。

当您单击指向第一页的链接时,不会发生加载,因为两个页面都在DOM中,并且第一页再次显示而不会触发onDeviceReady - 这只会在第一次加载时发生。

添加到每个链接rel="external"时,您可以关闭AJAX加载。

但是,您应该使用AJAX加载及其优点。阅读http://jquerymobile.com/demos/1.0.1/docs/pages/page-scripting.html - 它会在执行脚本时详细说明。我认为您应该将代码放在pagechange-或pageshow-event中,请参阅http://jquerymobile.com/demos/1.0.1/docs/api/events.html