Android 返回页面时的Jquery mobile多点击事件

Android 返回页面时的Jquery mobile多点击事件,android,click,jquery-mobile,Android,Click,Jquery Mobile,我刚刚将jquery mobile升级到beta 2(从beta 1升级到beta 2),现在如果我在按下后退键后返回页面,我会收到多个单击事件,每次返回页面时,都会向单击添加另一个,因此无论您进入页面多少次,都会触发警报 我还注意到,点击/点击似乎会进入当前页面,点击视图隐藏的页面——看起来很奇怪,但我认为它们可能是链接的 这就好像它正在创建同一页面的多个版本,当您返回该页面时,会加载一个新版本,从而导致出现两次单击事件 下面是正在激发的代码片段 $('#click_me').live('vc

我刚刚将jquery mobile升级到beta 2(从beta 1升级到beta 2),现在如果我在按下后退键后返回页面,我会收到多个单击事件,每次返回页面时,都会向单击添加另一个,因此无论您进入页面多少次,都会触发警报

我还注意到,点击/点击似乎会进入当前页面,点击视图隐藏的页面——看起来很奇怪,但我认为它们可能是链接的

这就好像它正在创建同一页面的多个版本,当您返回该页面时,会加载一个新版本,从而导致出现两次单击事件

下面是正在激发的代码片段

$('#click_me').live('vclick', function() {
    alert('clicked');
});
希望这是有意义的,任何人都可以了解可能发生的事情。

更新:

我认为原因是您将点击事件绑定到了实时事件,因此每次导航到该页面时都会触发点击事件。试着这样做:

$('div').live('pageshow',function(event, ui){
    $('#click_me').click(function() {
        alert('clicked');
    });
});
或者只使用单击事件

$('#click_me').click(function() {
    alert('clicked');
});
当Beta 2发布时,他们反对vclick

回溯:我们已从vclick切换回单击链接

在Beta 1中,我们决定使用自定义vclick事件来处理Ajax 用于提高响应能力和隐藏iPhone上URL栏的链接 还有安卓手机。尽管我们之前做了很多测试 在Beta 1版上登陆时,我们开始听到这样的反馈 在野外引发了一些重大问题,包括:

  • 导致导航和表单元素问题的多个单击事件- 在某些情况下,轻触元素时,轻触/单击事件 在链接上发射两次,这是由于目标 触摸事件和鼠标事件不匹配,因为浏览器 计算这些事件的公差。这是最明显的 Android 2.1,但对大多数基于WebKit的浏览器的影响程度各不相同 在图元边缘附近发生轻触事件时的度数

  • 自定义脚本中的单击处理程序不再“工作”——如果 仅绑定到文档上单击事件的脚本,全局vclick 功能可能会干扰,因为触摸事件可能会取代单击 事件,使it事件看起来不会触发


您现在可能已经解决了这个问题,但需要使用
pagecreate
事件。 @Phill建议:

$('div').live('pageshow',function(event, ui){
    $('#click_me').click(function() {
        alert('clicked');
    });
});
不幸的是,这没有帮助,但是如果将
pageshow
更改为
pagecreate

$('div').live('pagecreate',function(){
    $('#click_me').click(function() {
        alert('clicked');
    });
});
如果没有使用AJAX加载页面,请确保将
live
更改为
bind


我自己也遇到过同样的问题,这完全解决了我的问题。

谢谢,但我确实尝试过单击,但似乎没有任何区别:(谢谢,但似乎也不起作用:(,如果有任何区别,则使用单击事件的页面是一个单独的html文件进行索引。不太确定这可能是什么。