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 Nov 14, 2013
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.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.