我已经在这个answer中尝试了两种技术,以便在我的PhoneGap应用程序(在Android上测试)中的元素之间获得“拖动触摸高亮”。
Here's my JSFiddle of the touchmove approach
$("td").bind("touchmove", function(evt){
var touch = evt.originalEvent.touches[0]
highlightHoveredObject(touch.clientX, touch.clientY);
});
Here's my JSFiddle of the vmousemove approach
$("#main").bind("vmousemove", function(evt){
$('.catch').each(function(index) {
if ( div_overlap($(this), evt.pageX, evt.pageY) ) {
$('.catch').not('eq('+index+')').removeClass('green');
if (!$(this).hasClass('green')) {
$(this).addClass('green');
}
}
});
});
从桌面浏览器模拟应用程序时,两者都能很好地工作。从Android平板电脑浏览器查看JSFiddles时都可以正常工作。但是在平板电脑上安装的应用程序中,它不起作用。我拖动元素时不是更新突出显示,而是在第一次触摸的事件中突出显示。两种方法都是一样的。
任何想法发生了什么?
A comment on this question有一个有趣的建议,“如果你在Android上运行,你还需要取消touchmove事件,以便在触摸时获取新事件。不要问我为什么......”。这是不是响铃,如果是这样,我将如何用这些方法中的任何一种“取消触摸移动事件以获得新事件”?
或者,有人在PhoneGap应用程序上成功完成了“拖动突出显示”效果,您是否愿意分享您的技术?