Open prasannavalleti opened 7 years ago
I am also facing same issue. On long press of Item my screen is getting reloaded :-(
longTouch attribute never gets applied.
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.
@a5hik any updates on this ?