diff options
-rw-r--r-- | tests/unit/draggable/draggable.html | 1 | ||||
-rw-r--r-- | tests/unit/draggable/draggable_core.js | 29 | ||||
-rw-r--r-- | ui/jquery.ui.draggable.js | 2 |
3 files changed, 31 insertions, 1 deletions
diff --git a/tests/unit/draggable/draggable.html b/tests/unit/draggable/draggable.html index dce226a9a..cd068eb20 100644 --- a/tests/unit/draggable/draggable.html +++ b/tests/unit/draggable/draggable.html @@ -16,6 +16,7 @@ "ui/jquery.ui.core.js", "ui/jquery.ui.widget.js", "ui/jquery.ui.mouse.js", + "ui/jquery.ui.resizable.js", "ui/jquery.ui.draggable.js" ] }); diff --git a/tests/unit/draggable/draggable_core.js b/tests/unit/draggable/draggable_core.js index 31002addc..28a19f380 100644 --- a/tests/unit/draggable/draggable_core.js +++ b/tests/unit/draggable/draggable_core.js @@ -44,4 +44,33 @@ test("No options, absolute", function() { TestHelpers.draggable.shouldMove(el); }); +test("resizable handle with complex markup (#8756 / #8757)", function() { + expect( 2 ); + + $('#draggable1') + .append( + $('<div>') + .addClass("ui-resizable-handle") + .addClass("ui-resizable-w") + .append($('<div>')) + ); + + var handle = '.ui-resizable-w div', + target = $('#draggable1').draggable().resizable({ handles: 'all' }), + drag = function(el, dx) { + $(el) + .simulate("mouseover") + .simulate("drag", { + dx: dx || 0, + speed: 'sync' + }); + }; + + drag(handle, -50); + equal( target.width(), 250, "compare width" ); + + drag(handle, 50); + equal( target.width(), 200, "compare width" ); +}); + })(jQuery); diff --git a/ui/jquery.ui.draggable.js b/ui/jquery.ui.draggable.js index dad5af074..b982ac6be 100644 --- a/ui/jquery.ui.draggable.js +++ b/ui/jquery.ui.draggable.js @@ -70,7 +70,7 @@ $.widget("ui.draggable", $.ui.mouse, { var o = this.options; // among others, prevent a drag on a resizable-handle - if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle')) { + if (this.helper || o.disabled || $(event.target).closest('.ui-resizable-handle').length > 0) { return false; } |