jQuery: обходной путь, при котором сенсорное движение не срабатывает при перетаскивании пальцем по элементам
У меня есть набор из 6 панелей, которые можно вставлять и касаться. Как только каждая панель нажата, я регистрирую это и затем делаю что-то после того, как все 6 были поражены
mousedown и mousemove работают, как и ожидалось, но для мобильных устройств 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/