Html 移动设备的“点击”或简单的“触摸”事件

Html 移动设备的“点击”或简单的“触摸”事件,html,jquery-mobile,cordova,html5-canvas,kineticjs,Html,Jquery Mobile,Cordova,Html5 Canvas,Kineticjs,我使用的是kinetic-v4.3.0-beta2.js 我想在ios和android组上处理移动触摸事件 我正在绑定以下事件: group.on('touchstart', function (evt) { $('#onpopMenu').popup("open", { x: leftPosition, y: topPosition }); }); 我试过“touchend”、“touchstart”和“tap” 在点击中获得部分成功,但在这种情况下,形状是可拖动的,所以点击事件

我使用的是kinetic-v4.3.0-beta2.js

我想在ios和android组上处理移动触摸事件

我正在绑定以下事件:

group.on('touchstart', function (evt) {

    $('#onpopMenu').popup("open", { x: leftPosition, y: topPosition });

});
我试过“touchend”、“touchstart”和“tap”

在点击中获得部分成功,但在这种情况下,形状是可拖动的,所以点击事件不能正确触发,因为对象将从其位置移动

但若形状不可拖动,那个么它就可以正常工作

我也尝试了“touchend”和“touchstart”事件,但在iOs和android中事件触发后弹出菜单关闭,因为我正在通过触摸组打开Jquery移动弹出窗口

触发touchstart事件时,弹出菜单将仅打开2-3秒

有没有人在kinetic JS Mobile事件中遇到过同样的问题?如何使用它处理仅单击或触摸事件

我查了一下作为参考,但没有运气

我正在使用Phonegap+JQM+JS开发应用程序


提前谢谢

请记住,您的应用程序正在webview中运行。这就是为什么触摸/点击事件会延迟2/3秒的原因。 这就是为什么在我所有的PhoneGap开发中,我都使用Fastclick.js。FastClick是一个简单易用的库,用于消除移动浏览器上物理点击和触发点击事件之间300毫秒的延迟。这样做的目的是让您的应用程序感觉不那么滞后,响应速度更快,同时避免对当前逻辑的任何干扰。 你可以在这里找到它。 如果您使用的是jQuery,那么它很容易使用:

<script type='application/javascript' src='/path/to/fastclick.js'></script>
<script>
    $(function() {
        FastClick.attach(document.body);
    });
</script>
我为你做了一个测试来测试点击/触摸事件

据我所知,您有一个Dynamic.Group节点,可以拖动,但您希望使用jquery mobile打开一个弹出窗口

拖动对象时,点击事件不会触发,这是正确的。但您说过,如果形状不可拖动,则轻敲事件可以正常工作。这让我相信:

你想要一个点击弹出窗口吗 你想在dragend上弹出一个窗口吗 如果是这样,您只需使用以下两种事件:

group.on('tap dragend', function (evt) {
  $('#onpopMenu').popup("open", { x: leftPosition, y: topPosition });
});
如果我的假设是错误的,请告诉我,我可以与您合作,以获得正确的解决方案。我猜你想什么时候弹出,所以如果你让我知道你想什么时候弹出会有很大帮助


您可能还需要考虑使用evt.cancelBubble=true

这可以用于HTML和Jquery移动用户界面,但我想处理HTML5 KineticsJS画布上的点击或触摸事件。问题是关于如何在KinjeticsJS中处理触摸或点击事件,而不是在Jquery Mobile中。我已经在JQM的第一个版本中使用FastClick了!很抱歉,我误解了你问题的意思:另外,如果你的项目可能的话,我建议更新到最新的KineticJS版本。我对新版本感到厌倦,但它仍然不起作用!我尝试了上面的代码,但当形状或组是可拖动的时,它不起作用。对于dragend,我需要拖动组,但我只想单击组!