]> source.dussan.org Git - jquery-ui.git/commitdiff
Resizable: Keep user defined handles on _setOption
authorKonstantin Dinev <kdinev@mail.bw.edu>
Fri, 24 Feb 2017 15:36:19 +0000 (17:36 +0200)
committerScott González <scott.gonzalez@gmail.com>
Fri, 24 Feb 2017 19:30:58 +0000 (14:30 -0500)
Fixes #15084
Closes gh-1795

tests/unit/resizable/options.js
ui/widgets/resizable.js

index f89682593128742dd8944e22eeb9e5c90585aa3c..4080bac0e73afd73f86f687d8fc574c3c559f5fd 100644 (file)
@@ -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 ) {
index f20bc791d0e5027022c1dcb6aae4cbc03c31793f..b5264ee532196929b81f5f2fe3fd3864ef047c52 100644 (file)
@@ -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 ) {