1

我们正在开发一个基于 Cordova 的 Android 应用程序。所有 HTML 页面都是本地的(在assets/www文件夹中)。pageChange我们使用 jquery mobile changePage 方法加载 HTML 页面并在回调中注册事件(按钮单击事件等) 。

对于 android 2.3 及更高版本,这可以正常工作,加载请求的页面并正确绑定事件(点击事件等)。

在 Android 2.2 上,我们面临一个问题,在changePage方法调用请求页面已加载但未pageChange触发事件(因此单击事件未正确绑定)。

知道是什么原因造成的吗?changePage低版本的android有问题吗?

4

2 回答 2

0

我认为是时候放弃对 Android 2.2 的支持了。甚至 PhoneGap 也正式弃用了对 Android 2.2 的支持。只有不到 5% 的人使用Android 2.2 及以下版本

根据我的经验,我通常使用pagecreate事件来绑定按钮等事件。创建页面后会触发此事件。在 Android 2.2 上试试下面的方法,看看它是否对你有帮助。

您可以执行以下操作

$(document).on('pagecreate', '#myPageID', function(){
 //Registering button click
 $('#myButton').bind('click',function(){
   alert('button click');
 });
});
于 2013-05-28T08:50:49.490 回答
0

我不知道pageChange事件是否适用于 Android 2.2,但有一些简单的解决方法。

可以使用Pageshow代替。它是pageChange触发之前触发的最后一个事件,因此它也可以用于事件绑定。

$(document).on('pagebeforeshow', '#index', function(){ 

});

最后一件事,您无需等待changePage绑定点击事件。您可以使用称为委托事件绑定的东西。为了让它工作,对象是否存在于 DOM 中并不重要,因为事件将被绑定到文档。仅当存在这种需要时,它才会传播到元素,例如单击对象时。

这是您执行委托事件绑定的方式:

$(document).on('click', '#elementID', function(){ 

});
于 2013-05-28T07:43:46.313 回答