diff --git a/tests/unit/draggable/draggable.html b/tests/unit/draggable/draggable.html
index 53468a3a998..2e741310727 100644
--- a/tests/unit/draggable/draggable.html
+++ b/tests/unit/draggable/draggable.html
@@ -5,7 +5,7 @@
jQuery UI Draggable Test Suite
-
+
#main {
diff --git a/tests/unit/draggable/options.js b/tests/unit/draggable/options.js
index 656df621f0f..34d38979487 100644
--- a/tests/unit/draggable/options.js
+++ b/tests/unit/draggable/options.js
@@ -802,17 +802,20 @@ QUnit.test( "cursorAt, switching after initialization", function( assert ) {
} );
QUnit.test( "disabled", function( assert ) {
- assert.expect( 6 );
+ assert.expect( 9 );
var element = $( "#draggable1" ).draggable();
testHelper.shouldMove( assert, element, "disabled: default" );
+ assert.equal( element.css( "touch-action" ), "none", "touch-action: default" );
element.draggable( "option", "disabled", true );
testHelper.shouldNotDrag( assert, element, "option: disabled true" );
+ assert.equal( element.css( "touch-action" ), "auto", "touch-action: disabled true" );
element.draggable( "option", "disabled", false );
testHelper.shouldMove( assert, element, "option: disabled false" );
+ assert.equal( element.css( "touch-action" ), "none", "touch-action: disabled false" );
} );
QUnit.test( "{ grid: [50, 50] }, relative", function( assert ) {
diff --git a/themes/base/draggable.css b/themes/base/draggable.css
index f2000c45656..88f09ec52fc 100644
--- a/themes/base/draggable.css
+++ b/themes/base/draggable.css
@@ -6,7 +6,7 @@
* Released under the MIT license.
* http://jquery.org/license
*/
-.ui-draggable-handle {
+.ui-draggable-handle-enabled {
-ms-touch-action: none;
touch-action: none;
}
diff --git a/ui/widgets/draggable.js b/ui/widgets/draggable.js
index 9e46c81bb00..88d62745172 100644
--- a/ui/widgets/draggable.js
+++ b/ui/widgets/draggable.js
@@ -79,6 +79,9 @@ $.widget( "ui.draggable", $.ui.mouse, {
this._addClass( "ui-draggable" );
}
this._setHandleClassName();
+ if ( !this.options.disabled ) {
+ this._addClass( this.handleElement, "ui-draggable-handle-enabled" );
+ }
this._mouseInit();
},
@@ -91,6 +94,16 @@ $.widget( "ui.draggable", $.ui.mouse, {
}
},
+ _setOptionDisabled: function( value ) {
+
+ // Remove touch-action for disabled draggables
+ if ( value ) {
+ this._removeClass( this.handleElement, "ui-draggable-handle-enabled" );
+ } else {
+ this._addClass( this.handleElement, "ui-draggable-handle-enabled" );
+ }
+ },
+
_destroy: function() {
if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) {
this.destroyOnClear = true;