jQuery:当手指拖过元素时,touchmove的解决方法不会触发

时间:2013-08-20 10:09:52

标签: touch touch-event jquery mobile-webkit

我有一套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上的所有canvas元素并使用toDateURL()

将它们与画布的空白(未触动)实例进行比较来解决它

小提琴:http://jsfiddle.net/xT7n7/10/

0 个答案:

没有答案