aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Dinev <kdinev@mail.bw.edu>2017-02-24 17:36:19 +0200
committerScott González <scott.gonzalez@gmail.com>2017-02-24 14:30:58 -0500
commit278d1e1108e6c12d35be9edce2a9efcab1946229 (patch)
tree0913b92629f624f69fb1507ba6a936f81fbefea9
parenta3b9129be19afabb3fa6b2fb913b85aab43f4652 (diff)
downloadjquery-ui-278d1e1108e6c12d35be9edce2a9efcab1946229.tar.gz
jquery-ui-278d1e1108e6c12d35be9edce2a9efcab1946229.zip
Resizable: Keep user defined handles on _setOption
Fixes #15084 Closes gh-1795
-rw-r--r--tests/unit/resizable/options.js28
-rw-r--r--ui/widgets/resizable.js8
2 files changed, 26 insertions, 10 deletions
diff --git a/tests/unit/resizable/options.js b/tests/unit/resizable/options.js
index f89682593..4080bac0e 100644
--- a/tests/unit/resizable/options.js
+++ b/tests/unit/resizable/options.js
@@ -434,11 +434,20 @@ QUnit.test( "zIndex, applied to all handles", function( assert ) {
} );
QUnit.test( "setOption handles", function( assert ) {
- assert.expect( 11 );
-
- var target = $( "<div></div>" ).resizable();
-
- function checkHandles( expectedHandles ) {
+ assert.expect( 15 );
+
+ var target = $( "<div></div>" ).resizable(),
+ target2 = $( "<div>" +
+ "<div class='ui-resizable-handle ui-resizable-e'></div>" +
+ "<div class='ui-resizable-handle ui-resizable-w'></div>" +
+ "</div>" ).resizable( {
+ handles: {
+ "e": "ui-resizable-e",
+ "w": "ui-resizable-w"
+ }
+ } );
+
+ function checkHandles( target, expectedHandles ) {
expectedHandles = $.map( expectedHandles, function( value ) {
return ".ui-resizable-" + value;
} );
@@ -451,13 +460,16 @@ QUnit.test( "setOption handles", function( assert ) {
} );
}
- checkHandles( [ "e", "s", "se" ] );
+ checkHandles( target, [ "e", "s", "se" ] );
target.resizable( "option", "handles", "n, w, nw" );
- checkHandles( [ "n", "w", "nw" ] );
+ checkHandles( target, [ "n", "w", "nw" ] );
target.resizable( "option", "handles", "s, w" );
- checkHandles( [ "s", "w" ] );
+ checkHandles( target, [ "s", "w" ] );
+
+ target2.resizable( "option", "handles", "e, s, w" );
+ checkHandles( target2, [ "e", "s", "w" ] );
} );
QUnit.test( "alsoResize + containment", function( assert ) {
diff --git a/ui/widgets/resizable.js b/ui/widgets/resizable.js
index f20bc791d..b5264ee53 100644
--- a/ui/widgets/resizable.js
+++ b/ui/widgets/resizable.js
@@ -250,6 +250,7 @@ $.widget( "ui.resizable", $.ui.mouse, {
} );
this._handles = $();
+ this._addedHandles = $();
if ( this.handles.constructor === String ) {
if ( this.handles === "all" ) {
@@ -269,7 +270,10 @@ $.widget( "ui.resizable", $.ui.mouse, {
axis.css( { zIndex: o.zIndex } );
this.handles[ handle ] = ".ui-resizable-" + handle;
- this.element.append( axis );
+ if ( !this.element.children( this.handles[ handle ] ).length ) {
+ this.element.append( axis );
+ this._addedHandles = this._addedHandles.add( axis );
+ }
}
}
@@ -335,7 +339,7 @@ $.widget( "ui.resizable", $.ui.mouse, {
},
_removeHandles: function() {
- this._handles.remove();
+ this._addedHandles.remove();
},
_mouseCapture: function( event ) {