2013-07-31 95 views
1

事件我使用动能V4.3.0-beta2.js动力学JS“点击”或简单的“触摸”移动设备

我想在组处理移动触摸事件为iOS &机器人。

我结合事件,如以下

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

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

}); 

我试图“touchend”,“touchstart”和“抽头”

得到了在“点按”部分的成功,但在这种情况下,形状为可拖动所以点击事件不正确的火,因为对象将从它的位置移动。

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

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

触发事件触发时,弹出式菜单仅会打开2-3秒。

任何人都面临同样的问题动能JS移动事件?如何只处理“点击”或“触摸”事件。

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

我发展提前

感谢与PhoneGap的+ JQM + JS动力学的应用!

+0

另外,我建议更新到最新版本KineticJS如果在所有可能为您的项目。 – projeqht

+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> 
+0

这可以使用HTML和Jquery Mobile UI,但我想处理HTML5 KineticsJS Canvas上的Click或Touch事件。问题在于你如何处理KinjeticsJS中的触摸或点击事件,而不是在Jquery Mobile中。我已经从它的第一个版本开始使用FastClick和JQM了! –

+0

对不起,我误解了你的问题的意思:) – David

0

我做了一个你考出点击/触摸事件。

据我了解,你有一个Kinetic.Group节点是draggable但你想打开一个弹出使用 jQuery Mobile的。

你是对的,当你拖动对象时,自来水不会触发事件。但你说否则水龙头事件工作正常,如果形状不可拖动。这使我相信:

  1. 你想在弹出的“挖掘”
  2. 你想在“dragend”

如果有一个弹出窗口,所有你需要的是使用这样的两个事件:

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/

+0

我试过你的上面的代码,但是当形状或组被拖动时它不工作。对于“dragend”我需要拖动组,但我只想点击组! –