1

我正在使用 phonegap (cordova 2.8) 和 android 4.2.1,我用作框架作品:knockout 和 jquery mobile。该应用程序基于http://propertycross.com/jquery-mobile/

我得到以下有趣的行为:当点击一个移动到另一个屏幕 #2 的按钮时,如果在同一位置的 #2 屏幕中有一个按钮,那么它也会被点击......

我找到的唯一解决方案是使用 setTimeout 包装更改屏幕的代码:

            setTimeout(function() {
                application.navigateTo(viewModel);
            },600);

这解决了问题,但减慢了应用程序...

这实际上很不幸,因为phonegap已经太慢了......

谢谢。

4

1 回答 1

0

你可以做两件事:

1) e.stopPropagation(), e.preventDefault()

phopkins 在这里对此进行了描述: jQuery mobile tap event triggered for two

我会详细说明,因为这对我来说是一个主要问题。这适用于任何点击、单击、vclick 和可能的其他事件。

您的事件函数应该调用 stopPropogation() 和 preventDefault() ,如下所示:

$('#selector').tap(function(e) {
    //your code here

    e.stopPropagation();
    e.preventDefault();
});

这有帮助,但是,我发现您仍然可以获得“幻像”点击。

2)将事件绑定到页面,而不是按钮。

这样它就不会绑定到下一页。

例如,对于 id='myPage' 的页面和 id='myBtn' 的按钮:

$('#myPage').on('tap', '#myBtn', function(e) {
    //your code here

    e.stopPropagation();
    e.preventDefault();

});
于 2013-08-08T21:58:01.837 回答