Skip to content

Commit cdff72e

Browse files
committed
Draggable: Account for descendants in handle.
1 parent 6358695 commit cdff72e

File tree

3 files changed

+6
-38
lines changed

3 files changed

+6
-38
lines changed

tests/unit/draggable/draggable.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ <h2 id="qunit-userAgent"></h2>
4848
<div id="qunit-fixture">
4949
<div id="main"></div>
5050
<div id="draggable1" style="background: green; width: 200px; height: 100px;">Relative</div>
51-
<div id="draggable2" style="background: green; width: 200px; height: 100px; position: absolute; top: 10px; left: 10px;"><span>Absolute</span></div>
51+
<div id="draggable2" style="background: green; width: 200px; height: 100px; position: absolute; top: 10px; left: 10px;"><span><em>Absolute</em></span></div>
5252
<div id="droppable" style="background: green; width: 200px; height: 100px; position: absolute; top: 110px; left: 110px;"><span>Absolute</span></div>
5353
<div style="width: 1px; height: 1000px;"></div>
5454
<div style="position: absolute; width: 1px; height: 2000px;"></div>

tests/unit/draggable/draggable_options.js

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -603,39 +603,15 @@ test( "grid, switching after initialization", function() {
603603
});
604604

605605
test( "{ handle: 'span' }", function() {
606-
expect( 2 );
606+
expect( 3 );
607607

608608
var element = $( "#draggable2" ).draggable({ handle: "span" });
609609

610610
TestHelpers.draggable.testDrag( element, "#draggable2 span", 50, 50, 50, 50, "drag span" );
611+
TestHelpers.draggable.testDrag( element, "#draggable2 span em", 50, 50, 50, 50, "drag span child" );
611612
TestHelpers.draggable.shouldNotMove( element, "drag element" );
612613
});
613614

614-
/*
615-
test( "{ handle: Selectors }, matching parent selector", function() {
616-
617-
expect( 4 );
618-
619-
var element = $( "#draggable2" ).draggable({ handle: "span a" });
620-
621-
$( "#qunit-fixture" ).append( "<span id='wrapping'><a></a></span>" );
622-
623-
element.find( "span" ).append( "<a>" );
624-
625-
$( "#wrapping a" ).append( element );
626-
627-
TestHelpers.draggable.testDrag( element, "#draggable2 span a", 50, 50, 50, 50, "drag span child" );
628-
TestHelpers.draggable.shouldNotMove( $( "#wrapping a" ) );
629-
630-
$( "#draggable2" ).draggable( "option", "handle", "span > a" );
631-
$( "#draggable2" ).find( "a" ).append( "<a>" );
632-
633-
TestHelpers.draggable.testDrag( element, $( "#draggable2 span a" ).first(), 50, 50, 50, 50, "drag span child" );
634-
TestHelpers.draggable.shouldNotMove( $( "#draggable2 span a" ).last() );
635-
636-
});
637-
*/
638-
639615
test( "handle, default, switching after initialization", function() {
640616
expect( 6 );
641617

ui/jquery.ui.draggable.js

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -281,17 +281,9 @@ $.widget("ui.draggable", $.ui.mouse, {
281281
},
282282

283283
_getHandle: function(event) {
284-
285-
var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;
286-
287-
this.element.find( this.options.handle ).each(function() {
288-
if(this === event.target) {
289-
handle = true;
290-
}
291-
});
292-
293-
return handle;
294-
284+
return this.options.handle ?
285+
!!$( event.target ).closest( this.element.find( this.options.handle ) ).length :
286+
true;
295287
},
296288

297289
_createHelper: function(event) {

0 commit comments

Comments
 (0)