我正在使用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开发应用程序
提前致谢!
答案 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 事件可以正常工作。这让我相信:
如果是这样,您只需要使用这两个事件:
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/