Fixes touch events in sortable plugin

Refs #4791
Refs #4777
Refs #3755
This commit is contained in:
Samuel Georges 2019-11-28 21:03:32 +11:00
parent 249051b89c
commit 566f138eab
2 changed files with 17 additions and 14 deletions

File diff suppressed because one or more lines are too long

View File

@ -85,6 +85,7 @@
// The Placeholder has not been moved yet.
onDrag: function ($item, position, _super, event) {
$item.css(position)
event.preventDefault()
},
// Called after the drag has been started,
// that is the mouse button is being held down and
@ -108,7 +109,7 @@
// Ignore if element clicked is input, select or textarea
onMousedown: function ($item, _super, event) {
if (!event.target.nodeName.match(/^(input|select|textarea)$/i)) {
event.preventDefault()
if (event.type.match(/^mouse/)) event.preventDefault()
return true
}
},
@ -126,8 +127,9 @@
serialize: function ($parent, $children, parentIsContainer) {
var result = $.extend({}, $parent.data())
if(parentIsContainer)
if (parentIsContainer) {
return [$children]
}
else if ($children[0]){
result.children = $children
}
@ -253,7 +255,7 @@
this.item = closestItem;
this.itemContainer = itemContainer;
if (this.item.is(this.options.exclude) || !this.options.onMousedown(this.item, groupDefaults.onMousedown, e)) {
return;
return;
}
this.setPointer(e);
this.toggleListeners('on');
@ -400,10 +402,11 @@
) >= this.options.distance)
},
getPointer: function(e) {
var o = e.originalEvent || e.originalEvent.touches && e.originalEvent.touches[0]
var o = e.originalEvent,
t = (e.originalEvent.touches && e.originalEvent.touches[0]) || {}
return {
left: e.pageX || o.pageX,
top: e.pageY || o.pageY
left: e.pageX || o.pageX || t.pageX,
top: e.pageY || o.pageY || t.pageY
}
},
setupDelayTimer: function () {
@ -689,4 +692,4 @@
});
};
}(jQuery, window, 'jqSortable');
}(jQuery, window, 'jqSortable');