aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott González <scott.gonzalez@gmail.com>2013-03-08 10:08:46 -0500
committerScott González <scott.gonzalez@gmail.com>2013-03-08 10:08:58 -0500
commitcdff72efed495d7a17c551578079619712758793 (patch)
treeb4e9e964d89989f17158b4d321649a489458f6bd
parent6358695df18722d8c7e99437365db42cf4957626 (diff)
downloadjquery-ui-cdff72efed495d7a17c551578079619712758793.tar.gz
jquery-ui-cdff72efed495d7a17c551578079619712758793.zip
Draggable: Account for descendants in handle.
-rw-r--r--tests/unit/draggable/draggable.html2
-rw-r--r--tests/unit/draggable/draggable_options.js28
-rw-r--r--ui/jquery.ui.draggable.js14
3 files changed, 6 insertions, 38 deletions
diff --git a/tests/unit/draggable/draggable.html b/tests/unit/draggable/draggable.html
index 6380f3e85..3d1d3326e 100644
--- a/tests/unit/draggable/draggable.html
+++ b/tests/unit/draggable/draggable.html
@@ -48,7 +48,7 @@
<div id="qunit-fixture">
<div id="main"></div>
<div id="draggable1" style="background: green; width: 200px; height: 100px;">Relative</div>
- <div id="draggable2" style="background: green; width: 200px; height: 100px; position: absolute; top: 10px; left: 10px;"><span>Absolute</span></div>
+ <div id="draggable2" style="background: green; width: 200px; height: 100px; position: absolute; top: 10px; left: 10px;"><span><em>Absolute</em></span></div>
<div id="droppable" style="background: green; width: 200px; height: 100px; position: absolute; top: 110px; left: 110px;"><span>Absolute</span></div>
<div style="width: 1px; height: 1000px;"></div>
<div style="position: absolute; width: 1px; height: 2000px;"></div>
diff --git a/tests/unit/draggable/draggable_options.js b/tests/unit/draggable/draggable_options.js
index 2e9f85c24..a71bf57cb 100644
--- a/tests/unit/draggable/draggable_options.js
+++ b/tests/unit/draggable/draggable_options.js
@@ -603,39 +603,15 @@ test( "grid, switching after initialization", function() {
});
test( "{ handle: 'span' }", function() {
- expect( 2 );
+ expect( 3 );
var element = $( "#draggable2" ).draggable({ handle: "span" });
TestHelpers.draggable.testDrag( element, "#draggable2 span", 50, 50, 50, 50, "drag span" );
+ TestHelpers.draggable.testDrag( element, "#draggable2 span em", 50, 50, 50, 50, "drag span child" );
TestHelpers.draggable.shouldNotMove( element, "drag element" );
});
-/*
-test( "{ handle: Selectors }, matching parent selector", function() {
-
- expect( 4 );
-
- var element = $( "#draggable2" ).draggable({ handle: "span a" });
-
- $( "#qunit-fixture" ).append( "<span id='wrapping'><a></a></span>" );
-
- element.find( "span" ).append( "<a>" );
-
- $( "#wrapping a" ).append( element );
-
- TestHelpers.draggable.testDrag( element, "#draggable2 span a", 50, 50, 50, 50, "drag span child" );
- TestHelpers.draggable.shouldNotMove( $( "#wrapping a" ) );
-
- $( "#draggable2" ).draggable( "option", "handle", "span > a" );
- $( "#draggable2" ).find( "a" ).append( "<a>" );
-
- TestHelpers.draggable.testDrag( element, $( "#draggable2 span a" ).first(), 50, 50, 50, 50, "drag span child" );
- TestHelpers.draggable.shouldNotMove( $( "#draggable2 span a" ).last() );
-
-});
-*/
-
test( "handle, default, switching after initialization", function() {
expect( 6 );
diff --git a/ui/jquery.ui.draggable.js b/ui/jquery.ui.draggable.js
index 56b8fc77d..5762d3171 100644
--- a/ui/jquery.ui.draggable.js
+++ b/ui/jquery.ui.draggable.js
@@ -281,17 +281,9 @@ $.widget("ui.draggable", $.ui.mouse, {
},
_getHandle: function(event) {
-
- var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;
-
- this.element.find( this.options.handle ).each(function() {
- if(this === event.target) {
- handle = true;
- }
- });
-
- return handle;
-
+ return this.options.handle ?
+ !!$( event.target ).closest( this.element.find( this.options.handle ) ).length :
+ true;
},
_createHelper: function(event) {