From 95efe8a001213fe95efa5a25739d046723dd2f82 Mon Sep 17 00:00:00 2001 From: Mark van Driel Date: Sat, 1 Apr 2017 17:32:09 +0200 Subject: [PATCH 1/2] Added touch support to Sortables --- Source/Drag/Sortables.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Source/Drag/Sortables.js b/Source/Drag/Sortables.js index c6368b7c..ad22ba4f 100644 --- a/Source/Drag/Sortables.js +++ b/Source/Drag/Sortables.js @@ -74,7 +74,9 @@ var Sortables = this.Sortables = new Class({ var start = element.retrieve('sortables:start', function(event){ this.start.call(this, event, element); }.bind(this)); - (this.options.handle ? element.getElement(this.options.handle) || element : element).addEvent('mousedown', start); + (this.options.handle ? element.getElement(this.options.handle) || element : element).addEvents({ + mousedown: start, touchstart: start + }); }, this); return this; }, @@ -91,7 +93,9 @@ var Sortables = this.Sortables = new Class({ return $$(Array.flatten(arguments).map(function(element){ this.elements.erase(element); var start = element.retrieve('sortables:start'); - (this.options.handle ? element.getElement(this.options.handle) || element : element).removeEvent('mousedown', start); + (this.options.handle ? element.getElement(this.options.handle) || element : element).removeEvents({ + mousedown: start, touchstart: start + }); return element; }, this)); From c5dfd1584c0adfae517d5efdc3dc67b26f58c507 Mon Sep 17 00:00:00 2001 From: Mark van Driel Date: Sun, 2 Apr 2017 10:59:24 +0200 Subject: [PATCH 2/2] Propagate touchstart event from cloned element to original --- Source/Drag/Sortables.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Source/Drag/Sortables.js b/Source/Drag/Sortables.js index ad22ba4f..293bbd09 100644 --- a/Source/Drag/Sortables.js +++ b/Source/Drag/Sortables.js @@ -136,8 +136,13 @@ var Sortables = this.Sortables = new Class({ position: 'absolute', visibility: 'hidden', width: element.getStyle('width') - }).addEvent('mousedown', function(event){ - element.fireEvent('mousedown', event); + }).addEvents({ + mousedown: function(event){ + element.fireEvent('mousedown', event); + }, + touchstart: function(event){ + element.fireEvent('touchstart', event); + } }); //prevent the duplicated radio inputs from unchecking the real one if (clone.get('html').test('radio')){