сортировка jquery-ui | Как заставить его работать на iPad / touchdevices?

95

Как мне получить сортировку jquery-ui на iPad и других сенсорных платформах? http://jqueryui.com/demos/sortable/

Я пытался работать с

event.preventDefault();
event.cancelBubble=true;
event.stopPropagation();

для touchmove и события прокрутки, но единственный результат - как и ожидалось - что страница больше не прокручивается.

Любые идеи? СПАСИБО! EH!

  • 0
    Есть ли сообщение об ошибке для этого?
  • 0
    Может ли что-то подобное быть полезным? github.com/mattbryson/TouchSwipe-Jquery-Plugin
Теги:
scroll
jquery-ui-sortable
ipad
touch

2 ответа

178

Нашел решение (только тестировалось с iPad до сих пор!)!

http://furf.com/exp/touch-punch/sortable.html

  • 0
    Это прекрасно! Он переназначает события касания на события мыши. Я люблю это! Спасибо.
  • 8
    Это работает на планшете Android тоже. Специально протестировано на Samsung Galaxy Tab 10.1 на Android 3.1.
Показать ещё 20 комментариев
0

Том, Я добавил следующий код в mouseProto._touchStart событие:

var time1Sec;
var ifProceed = false, timerStart = false;
mouseProto._touchStart = function (event) {

    var self = this;

    // Ignore the event if another widget is already being handled
    if (touchHandled || !self._mouseCapture(event.originalEvent.changedTouches[0])) {
        return;
    }

    if (!timerStart) {
        time1Sec = setTimeout(function () {
            ifProceed = true;
        }, 1000);
        timerStart=true;
    }
    if (ifProceed) {
        // Set the flag to prevent other widgets from inheriting the touch event
        touchHandled = true;

        // Track movement to determine if interaction was a click
        self._touchMoved = false;

        // Simulate the mouseover event
        simulateMouseEvent(event, 'mouseover');

        // Simulate the mousemove event
        simulateMouseEvent(event, 'mousemove');

        // Simulate the mousedown event
        simulateMouseEvent(event, 'mousedown');
        ifProceed = false;
         timerStart=false;
        clearTimeout(time1Sec);
    }
};

Ещё вопросы

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