jquery-ui सॉर्टेबल | यह iPad / टचडेविस पर कैसे काम कर सकता है?


116

मैं iPad और अन्य स्पर्श उपकरणों पर काम करने वाला jQuery-UI सॉर्टेबल फ़ीचर कैसे प्राप्त करूं?

http://jqueryui.com/demos/sortable/

मैं का उपयोग कर की कोशिश की event.preventDefault();, event.cancelBubble=true;और event.stopPropagation();साथ touchmoveऔर scrollघटनाओं, लेकिन नतीजा यह है कि अब किसी भी पेज से स्क्रॉल नहीं होता था।

कोई विचार?


क्या इसके लिए कोई बग रिपोर्ट है?
मार्क-आंद्रे लाफ्यून

क्या ऐसा कुछ हो सकता है? github.com/mattbryson/TouchSwipe-Jquery-Plugin
jinglesthula

जवाबों:


216

एक समाधान मिला (केवल अब तक iPad के साथ परीक्षण किया गया!)

http://touchpunch.furf.com/content.php?/sortable/default-functionality


9
यह एंड्रॉइड टैबलेट पर भी काम करता है। विशेष रूप से एंड्रॉइड 3.1 पर सैमसंग गैलेक्सी टैब 10.1 पर परीक्षण किया गया।
१०:५० बजे

3
एंड्रॉइड 2.3.4 के साथ सैमसंग गैलेक्सी S2 पर काम करता है
MrUpsidown

1
एंड्रॉइड 4.1.2 के साथ सैमसंग गैलेक्सी एस 2 पर काम करता है
वेसल क्रैनबॉर्ग

2
यह महान काम करता है! हालाँकि मुझे पूरे पृष्ठ को कवर करने वाली एक तालिका मिल गई है, इसलिए चलती तत्वों के बिना ऊपर और नीचे स्क्रॉल करना मुश्किल हो जाता है। क्या किसी ने इस मुद्दे को संबोधित किया है? तत्वों को बढ़ने से रोकने के लिए कुछ जोड़ना जब तक कि वे एक्स सेकंड के लिए विशिष्ट एक को नहीं छूते हैं, तो क्या करना चाहिए?
टॉम

2
1/2014 तक, यह विंडोज फोन के इंटरनेट एक्सप्लोरर पर काम नहीं करता है। उम्मीद है, जब अन्य ब्राउज़र उपलब्ध हो जाते हैं तो यह काम करेगा।
15

7

बनाने के लिए sortableमोबाइल पर काम करते हैं। स्पर्श-पंच का उपयोग कर Imइस तरह :

$("#target").sortable({
  // option: 'value1',
  // otherOption: 'value2',
});

$("#target").disableSelection();

disableSelection();सॉर्टेबल इंस्टेंस बनाने के बाद जोड़ने पर ध्यान दें ।


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);
    }
};
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.