Resizable: Fix aspectRatio cannot be changed after initialization.

Fixes #4186
Closes gh-1750
This commit is contained in:
Sergei Ratnikov 2016-09-23 18:42:21 +03:00 committed by Scott González
parent c218bee80d
commit c481400f22
2 changed files with 25 additions and 0 deletions

View File

@ -155,6 +155,28 @@ QUnit.test( "aspectRatio: Resizing can move objects", function( assert ) {
assert.equal( target.position().top, 0, "compare top - no movement" );
} );
QUnit.test( "aspectRatio: aspectRatio can be changed after initialization", function( assert ) {
assert.expect( 4 );
var target = $( "#resizable1" )
.resizable( { aspectRatio: 1 } )
.resizable( "option", "aspectRatio", false );
var handle = ".ui-resizable-e";
testHelper.drag( handle, 80 );
assert.equal( target.width(), 180, "compare width - size change" );
assert.equal( target.height(), 100, "compare height - no size change" );
target.resizable( "option", "aspectRatio", 2 );
testHelper.drag( handle, -40 );
assert.equal( target.width(), 140, "compare width - size change" );
assert.equal( target.height(), 70, "compare height - size change in proper relation" );
} );
QUnit.test( "containment", function( assert ) {
assert.expect( 4 );

View File

@ -226,6 +226,9 @@ $.widget( "ui.resizable", $.ui.mouse, {
this._removeHandles();
this._setupHandles();
break;
case "aspectRatio":
this._aspectRatio = !!value;
break;
default:
break;
}