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

时间:2013-07-31 06:45:15

标签: html5 jquery-mobile cordova html5-canvas kineticjs

我正在使用kinetic-v4.3.0-beta2.js

我想在ios&组上处理群组中的移动触摸事件机器人。

我是绑定事件,如下面的

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

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

});

我试过'touchend','touchstart'和'tap'

在“Tap”中取得了部分成功,但在这种情况下,形状是可拖动的,因此点击事件没有正确触发,因为对象将从它的位置移动。

但如果形状不可拖动,那么它将正常工作。

我尝试了'touchend'和'touchstart'事件,但是在iOs和android发生事件后,弹出菜单关闭了,因为我正在通过触摸组打开Jquery Mobile Popup!

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

任何人遇到动能JS Mobile事件的同样问题?如何只用它来处理“点击”或“触摸”事件。

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

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

提前致谢!

2 个答案:

答案 0 :(得分:0)

请记住,您的应用程序在webview中运行。这就是为什么触摸/点击事件会有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>

答案 1 :(得分:0)

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

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

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

  1. 您想在“点击”
  2. 上弹出一个窗口
  3. 你想在“dragend”上弹出一个
  4. 如果是这样,您只需要使用这两个事件:

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

    如果我的假设是错误的,请告诉我,我可以与您合作以获得正确的解决方案。我猜你什么时候想弹出,所以如果你让我知道你想要弹出一个什么时候会有很多帮助。

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