如何使用javascript检测触摸移出节点。

时间:2012-02-13 19:02:49

标签: android cordova

我正在使用phonegap构建一个Android应用程序。我试图在用户触摸元素时实现触摸移动事件。但我仍然无法完美。

触摸移动事件非常完美,但当我触摸该区域并将手指拖到另一个触摸区域时,没有任何事件发生。

所以要点: - 用户触摸页面中的一个元素;然后将手指移出元素的范围。当手指移出元素时,我想抓住事件。当它进入另一个触摸区域时,触摸移动功能应该再次触发。

由于

1 个答案:

答案 0 :(得分:1)

也许你应该在你的问题中添加一个javascript标记,以便获得更多关注。

据我所知,没有浏览器支持触摸事件的“mouseout”或“mouseover”等事件。

所以我们必须自己跟踪。由于我们获得的触摸对象(当触发事件被触发时)仅提供触摸事件开始的目标,我们必须通过使用触摸位置来检查我们触摸的元素。

我使用了document.elementPosition(x, y)

因此,通过触摸事件的坐标,我们可以得到我们正在触摸的元素。

要识别留下一个元素,我正在存储最后一个被触摸的元素并检查新的触摸事件,如果我还在触摸同一个元素。如果情况并非如此,我们就会离开原来的那个并且可以解决这个问题。

我写了一个简短的演示(jsbin)。 You can try it here on your phone.

Source code can be also found here.

此演示中缺少的是处理预期触摸区域之外的触摸事件。

我想知道是否有更好的方法来处理你的任务。如果是这样,希望有人会在这里写下来。也许你已经找到了问题的答案,因为你在这里添加了它?