Long Press option not working on mobile devices
prasannavalleti opened this issue · 5 comments
prasannavalleti commented
Long Press option not working on mobile devices
princexebia commented
I am also facing same issue. On long press of Item my screen is getting reloaded :-(
mikey0000 commented
longTouch attribute never gets applied.
mikey0000 commented
iwanmcm commented
It didn't work for me, although the longTouch option was set to true.
I changed the bindDrag function in the ng-sortable.js file to bind longTouchStart and longTouchCancel to the 'touchstart' and 'touchend' events. Now the drag & drop also works on mobile for me.
Before change:
bindDrag = function () {
if (hasTouch) {
if (isLongTouch) {
if (isIOS) {
element.bind('touchstart', longTouchStart);
element.bind('touchend', longTouchCancel);
element.bind('touchmove', longTouchCancel);
} else {
element.bind('contextmenu', dragListen);
}
} else {
element.bind('touchstart', dragListen);
}
}
element.bind('mousedown', dragListen);
};
After change:
bindDrag = function () {
element.bind('touchstart', longTouchStart);
element.bind('touchend', longTouchCancel);
element.bind('touchmove', longTouchCancel);
element.bind('contextmenu', dragListen);
element.bind('touchstart', dragListen);
element.bind('mousedown', dragListen);
};
So it seems that some of touch events were bound only on iOS devices. Binding them on every device has solved the problem for me. Maybe there were changes in the events that the browsers produce.