Существует ли версия jqueryUi.mouse.js для мобильного телефона jQuery? - PullRequest
2 голосов
/ 21 сентября 2011

Я использую виджет jqueryui.sortable для своего сайта, и он не работает на мобильных платформах. Я просмотрел исходный код и, похоже, mouse.js связывает обработчики с событиями.

Существует ли версия mouse.js для jQ mobile или существует простой способ преобразования мобильных событий jq (vmousedown, vmousemove, vmouseup) в обычные события мыши, чтобы их могли получать виджеты JQuery UI?

1 Ответ

1 голос
/ 22 сентября 2011

Вы, вероятно, могли бы расширить библиотеку самостоятельно без особой работы.

Проверить, поддерживает ли устройство касание или нет, просто:

var supportTouch = ("ontouchend" in document);

Затем вы можете использовать соответствующее событие в зависимости от того, включено ли касание или нет, в библиотеке мобильных телефонов jQuery используется следующее:

var touchStartEvent = supportTouch ? "touchstart" : "mousedown",
    touchStopEvent = supportTouch ? "touchend" : "mouseup",
    touchMoveEvent = supportTouch ? "touchmove" : "mousemove";

Затем вы изменяете библиотеку, чтобы использовать эти переменные вместо текущих жестко закодированных событий мыши, вероятно, выглядит примерно так:

$(".sortable").bind("mousedown", doSomething());

Но должно выглядеть так:

$(".sortable").bind(touchStartEvent, doSomething());

Проведите некоторое тестирование, прежде чем выполнять слишком много работы. Я не тестировал приведенный выше код и не просматривал сортируемую библиотеку.

Еще одно замечание: некоторые мобильные устройства не поддерживают перетаскивание объектов в браузере, о чем я знаю, это Windows Phone 7 (как с Mango, так и без него). Если вы хотите поддержать их, вы должны создать решение «без перетаскивания».

...