Mouseup и mousedown не работают на IOS

0

Поэтому мне нужно что-то вроде следующего: в основном это двухдисковый тачпад, который пользователь прикасается (и держит прикосновение) пальцем, чтобы перенести персонажа определенным образом. Это отлично работает на моем ПК, но, похоже, это не работает, когда я тестирую его на iOS. Причина в том, вероятно, потому, что нет мыши, поэтому mousedown и mouseup не работают. Есть ли альтернативы? Я пытался использовать keydown и keyup, но они тоже не работали.

Вот мой код:

var $div = $('#character');

$('#ios-left').mousedown(function(){
   leftTimer = setInterval(function(){
    processWalk('left');
    },100);
}).mouseup(function(){
    $('#character').stop();
    clearInterval(leftTimer);
});
$('#ios-right').mousedown(function(){
        rightTimer = setInterval(function(){
     processWalk('right');
             },100);
}).mouseup(function(){
    $('#character').stop();
    clearInterval(rightTimer);
});

Благодарю! (Имейте в виду, что мне нужно, чтобы пользователь держал div вниз пальцем, чтобы перемещать персонажа, и когда он отпускает палец, персонаж должен остановиться)

EDIT: Ссылка на мой вопрос: JQuery Mouseup на iOS

Теги:
mousedown
mouseup

1 ответ

0
Лучший ответ

Используйте очень легкий вес jquery.mouse2touch.min.js плагин для имитации событий мыши для событий касания.

Примените поведение обработчика событий мыши, чтобы коснуться событий, таких как ниже $("#elmentID").mouse2touch() ИЛИ $(".elment-css-class").mouse2touch() который выполнит задание, чтобы скопировать все функциональные возможности на основе мыши, чтобы коснуться,

В коде вы можете вызвать mouse2touch() как mouse2touch() ниже:

$('#ios-left').mousedown(function(){
   leftTimer = setInterval(function(){
    processWalk('left');
    },100);
}).mouseup(function(){
    $('#character').stop();
    clearInterval(leftTimer);
}).mouse2touch();

$('#ios-right').mousedown(function(){
        rightTimer = setInterval(function(){
     processWalk('right');
             },100);
}).mouseup(function(){
    $('#character').stop();
    clearInterval(rightTimer);
}).mouse2touch();

EDIT: для другого связанного вопроса и здесь я предоставляю тот же ответ.

Рабочий скрипт

Проблема с таймером, вы должны очистить интервал времени перед перемещением. Ваша глобальная переменная TimerWalk с clearInterval(TimerWalk); должны быть полезными.

Вот блок кода

$('#ios-left').mousedown(function () {
    clearInterval(TimerWalk);
    TimerWalk = setInterval(function () {
        processWalk('left');
    }, 100);
}).mouseup(function () {
    $div.stop();
    clearInterval(TimerWalk);
}).mouse2touch();

$('#ios-right').mousedown(function () {
    clearInterval(TimerWalk);
    TimerWalk = setInterval(function () {
        processWalk('right');
    }, 100);
}).mouseup(function () {
    $div.stop();
    clearInterval(TimerWalk);
}).mouse2touch();

Это только исправление для правильного перемещения, вам может потребоваться решить другие проблемы.

  • 0
    не могли бы вы помочь мне с другой проблемой в чате?
  • 1
    Конечно, отправьте мне запрос чата?
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню