0

嗨,我的 Android 应用程序使用 PhoneGap 和 JQM 具有以下 HTML 结构。

<body>

<div data-role="page" id="screen">

</div>

<div data-role="page" id="config" data-theme="a">

</div>

</body>

我在#screen 上显示了一个计时器,并在#config 页面上显示了一些配置。触摸#screen 上的任意位置会停止计数器并显示#config 屏幕。'#config' 在单击时有一个'START' 按钮,它会再次显示#screen 并启动计数器。

为了处理这个我正在使用

$('#screen').bind('vmousedown', //code to show #config page);

$('#start_cycle').click(function(){
    $.mobile.changePage('#screen');
});

我的问题是,如果我在某个地方触摸#screen,#start_cycle 会出现在哪里,然后在我抬起拇指时执行 $('#start_cycle').click 功能。

似乎我的 vmouseup 事件正在开始按钮上执行单击事件,而无需等待我再次单击它。

我该如何防止这种情况。

4

1 回答 1

0

我还没有尝试过这个解决方案,只是通过 jQM 工作原理的理论,

$('#screen').bind('vmousedown', function(e){
     e.preventDefault();
     //code to change the page to counter page.
     return false;
})

jQM 说, v 之后是单击事件,在您触摸的同一点上延迟 300 毫秒。这可能是您的计时器在没有您手动启动计时器的情况下启动的原因。如果上述方法不起作用,请尝试使用原生 js 方法附加触摸事件。

于 2012-12-31T22:27:18.637 回答