aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/unit/draggable/draggable.html1
-rw-r--r--tests/unit/draggable/draggable_core.js29
-rw-r--r--ui/jquery.ui.draggable.js2
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;
}