1

我正在使用 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 中的事件触发后,弹出菜单关闭,因为我正在通过 Touching 组打开 Jquery Mobile Popup!

当 touchstart 事件触发时,弹出菜单只会打开 2-3 秒。

有人在动态 JS Mobile 事件中遇到过同样的问题吗?如何只处理“点击”或“触摸”事件。

我检查了这个http://www.html5canvastutorials.com/kineticjs/html5-canvas-mobile-events/以供参考,但没有运气!

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

提前致谢!

4

2 回答 2

0

请记住,您的应用程序是在 web 视图中运行的。这就是为什么你在触摸/点击事件上有 2/3 秒的延迟。这就是为什么在我所有的 PhoneGap 开发中,我都使用 Fastclick.js。FastClick 是一个简单易用的库,用于消除移动浏览器上物理点击和点击事件触发之间的 300 毫秒延迟。目的是让您的应用程序感觉更少滞后和更灵敏,同时避免对您当前逻辑的任何干扰。你可以在这里找到它https://github.com/ftlabs/fastclick。它易于使用(如果您使用的是 jQuery):

<script type='application/javascript' src='/path/to/fastclick.js'></script>
<script>
    $(function() {
        FastClick.attach(document.body);
    });
</script>
于 2013-07-31T07:47:46.983 回答
0

我为您制作了一个jsfiddle来测试点击/触摸事件。

据我了解,您有一个Kinetic.Group节点,draggable但您想使用 jquery mobile打开一个弹出窗口。

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

  1. 你想在“点击”时弹出一个窗口
  2. 你想要一个关于“dragend”的弹出窗口

如果是这样,您只需要像这样使用这两个事件:

group.on('tap dragend', function (evt) {
  $('#onpopMenu').popup("open", { x: leftPosition, y: topPosition });
});

如果我的假设有误,请告诉我,我可以与您一起找到正确的解决方案。我猜你什么时候想弹出,所以如果你让我知道你想要弹出的确切时间,那将有很大帮助。

您可能还想考虑使用http://www.html5canvastutorials.com/kineticjs/html5-canvas-cancel-event-bubble-propagation-with-kineticjs/evt.cancelBubble = true;

于 2013-07-31T13:53:03.143 回答