diff --git a/tests/unit/draggable/draggable_core.js b/tests/unit/draggable/draggable_core.js index 7df0969b1..beab67f19 100644 --- a/tests/unit/draggable/draggable_core.js +++ b/tests/unit/draggable/draggable_core.js @@ -274,15 +274,19 @@ asyncTest( "#4261: active element should blur when mousing down on a draggable", }); test( "ui-draggable-handle assigned to appropriate element", function() { - expect( 4 ); + expect( 5 ); - var element = $( "

" ).appendTo( "#qunit-fixture" ).draggable(); + var p = $( "

" ).appendTo( "#qunit-fixture" ), + element = $( "

" ).appendTo( "#qunit-fixture" ).draggable(); ok( element.hasClass( "ui-draggable-handle" ), "handle is element by default" ); element.draggable( "option", "handle", "p" ); ok( !element.hasClass( "ui-draggable-handle" ), "removed from element" ); ok( element.find( "p" ).hasClass( "ui-draggable-handle" ), "added to handle" ); + ok( !p.hasClass( "ui-draggable-handle" ), + "ensure handle class name is constrained within the draggble (#10212)" ); + element.draggable( "destroy" ); ok( !element.find( "p" ).hasClass( "ui-draggable-handle" ), "removed in destroy()" ); }); diff --git a/ui/draggable.js b/ui/draggable.js index c27fc8733..cd87ad2fc 100644 --- a/ui/draggable.js +++ b/ui/draggable.js @@ -314,8 +314,10 @@ $.widget("ui.draggable", $.ui.mouse, { }, _setHandleClassName: function() { + var handle = this.options.handle ? + this.element.find( this.options.handle ) : this.element; this._removeHandleClassName(); - $( this.options.handle || this.element ).addClass( "ui-draggable-handle" ); + handle.addClass( "ui-draggable-handle" ); }, _removeHandleClassName: function() {