我有一组 6 个 div 面板,可以将鼠标向下和悬停或触摸。一旦每个面板被击中,我就会记录下来,然后在所有 6 个面板都被击中后做一些事情
mousedown 和 mousemove 按预期工作,但对于移动设备,touchmove 仅在我将手指移过的第一个面板上触发。
我知道这是因为 touchmove 的工作方式,但我正在努力想出一个解决方法来解决我想要实现的目标,即知道所有 6 个面板何时都被触摸。
示例(使用鼠标但在移动设备上尝试) http://jsfiddle.net/xT7n7/3/embedded/result/
相关代码:
// when one of the 6 panels is moused over
$("div.panel").bind("mousemove", (function () {
if (is_mouse_down) {
total_hits++;
$("body").append('<p>Panel has been hit</p>');
if ($(this).hasClass('win')) {
win_hits++;
}
$(this).unbind('mousemove');
}
}));
// when one of the 6 panels is 'touched'
$("div.panel").bind("touchmove", (function () {
total_hits++;
$("body").append('<p>Panel has been hit</p>');
if ($(this).hasClass('win')) {
win_hits++;
}
$(this).unbind('touchmove');
}));
编辑:根据评论,我尝试按照这篇文章(http://www.devinrolsen.com/basic-jquery-touchmove-event-setup/)中的建议修改代码,但没有任何区别。
编辑2:看起来我可以通过检查mouseup / touchend上的所有画布元素并将它们与画布的空白(未触及)实例进行比较来解决它toDateURL()
小提琴:http: //jsfiddle.net/xT7n7/10/