1

我有一组 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/

4

0 回答 0