Skip to content
Permalink
Browse files
Resizable: Modified to allow jquery objects as handles
Custom handlers did not work as jquery objects (outside the resizable element)

Fixes #9658
Closes gh-1445
  • Loading branch information
patrixd authored and tjvantoll committed Mar 3, 2015
1 parent 4b017b4 commit 18e301f4e29c2080e9aa9dac87c00dee137cb6c9
Showing with 38 additions and 9 deletions.
  1. +1 −0 tests/unit/resizable/resizable.html
  2. +29 −0 tests/unit/resizable/resizable_options.js
  3. +8 −9 ui/resizable.js
@@ -69,6 +69,7 @@

<div id="container">
<div id="resizable1">I'm a resizable.</div>
<div id="resizer1" class="ui-resizable-handle ui-resizable-s"></div>
</div>

<div id="container2">
@@ -374,6 +374,35 @@ test("ui-resizable-nw { handles: 'all', minWidth: 60, minHeight: 60, maxWidth: 1
equal( target.height(), 100, "compare maxHeight" );
});


test( "custom handles { handles: { 's': $('#resizer1'), containment: 'parent' }", function () {
expect( 2 );

var handle = "#resizer1",
target = $( "#resizable1" ).resizable({ handles: { "s": $( "#resizer1" ) }, containment: "parent" });

TestHelpers.resizable.drag( handle, 0, 70 );
equal( target.height(), 170, "compare height" );

TestHelpers.resizable.drag( handle, 0, -70 );
equal( target.height(), 100, "compare height" );
});


test( "custom handles { handles: { 's': $('#resizer1')[0], containment: 'parent' }", function () {
expect( 2 );

var handle = "#resizer1",
target = $( "#resizable1" ).resizable({ handles: { "s": $( "#resizer1" )[ 0 ] }, containment: "parent" });

TestHelpers.resizable.drag( handle, 0, 70 );
equal( target.height(), 170, "compare height" );

TestHelpers.resizable.drag( handle, 0, -70 );
equal( target.height(), 100, "compare height" );
});


test("zIndex, applied to all handles", function() {
expect(8);

@@ -168,7 +168,8 @@ $.widget("ui.resizable", $.ui.mouse, {
nw: ".ui-resizable-nw"
} );

if (this.handles.constructor === String) {
this._handles = $();
if ( this.handles.constructor === String ) {

if ( this.handles === "all") {
this.handles = "n,e,s,w,se,sw,ne,nw";
@@ -206,6 +207,9 @@ $.widget("ui.resizable", $.ui.mouse, {

if (this.handles[i].constructor === String) {
this.handles[i] = this.element.children( this.handles[ i ] ).first().show();
} else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) {
this.handles[ i ] = $( this.handles[ i ] );
this._on( this.handles[ i ], { "mousedown": that._mouseDown });
}

if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)) {
@@ -222,21 +226,17 @@ $.widget("ui.resizable", $.ui.mouse, {
target.css(padPos, padWrapper);

this._proportionallyResize();

}

// TODO: What's that good for? There's not anything to be executed left
if (!$(this.handles[i]).length) {
continue;
}
this._handles = this._handles.add( this.handles[ i ] );
}
};

// TODO: make renderAxis a prototype function
this._renderAxis(this.element);

this._handles = $(".ui-resizable-handle", this.element)
.disableSelection();
this._handles = this._handles.add( this.element.find( ".ui-resizable-handle" ) );
this._handles.disableSelection();

this._handles.mouseover(function() {
if (!that.resizing) {
@@ -270,7 +270,6 @@ $.widget("ui.resizable", $.ui.mouse, {
}

this._mouseInit();

},

_destroy: function() {

0 comments on commit 18e301f

Please sign in to comment.