mirror of
https://github.com/jquery/jquery-ui.git
synced 2025-01-07 20:34:24 +00:00
Resizable: alsoResize more than one element of a jQuery selection
Fixes #4666
Closes gh-1324
Closes gh-1461
(cherry picked from commit 19783fd3e6
)
This commit is contained in:
parent
65f31c2ead
commit
31e7099709
@ -433,4 +433,34 @@ test( "alsoResize + containment", function() {
|
||||
equal( other.height(), 150, "alsoResize constrained height at containment edge" );
|
||||
});
|
||||
|
||||
test( "alsoResize + multiple selection", function() {
|
||||
expect( 6 );
|
||||
var other1 = $( "<div>" )
|
||||
.addClass( "other" )
|
||||
.css({
|
||||
width: 50,
|
||||
height: 50
|
||||
})
|
||||
.appendTo( "body" ),
|
||||
other2 = $( "<div>" )
|
||||
.addClass( "other" )
|
||||
.css({
|
||||
width: 50,
|
||||
height: 50
|
||||
})
|
||||
.appendTo( "body"),
|
||||
element = $( "#resizable1" ).resizable({
|
||||
alsoResize: other1.add( other2 ),
|
||||
containment: "#container"
|
||||
});
|
||||
|
||||
TestHelpers.resizable.drag( ".ui-resizable-se", 400, 400 );
|
||||
equal( element.width(), 300, "resizable constrained width at containment edge" );
|
||||
equal( element.height(), 200, "resizable constrained height at containment edge" );
|
||||
equal( other1.width(), 250, "alsoResize o1 constrained width at containment edge" );
|
||||
equal( other1.height(), 150, "alsoResize o1 constrained height at containment edge" );
|
||||
equal( other2.width(), 250, "alsoResize o2 constrained width at containment edge" );
|
||||
equal( other2.height(), 150, "alsoResize o2 constrained height at containment edge" );
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
|
@ -983,29 +983,15 @@ $.ui.plugin.add("resizable", "alsoResize", {
|
||||
|
||||
start: function() {
|
||||
var that = $(this).resizable( "instance" ),
|
||||
o = that.options,
|
||||
_store = function(exp) {
|
||||
$(exp).each(function() {
|
||||
var el = $(this);
|
||||
el.data("ui-resizable-alsoresize", {
|
||||
width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),
|
||||
left: parseInt(el.css("left"), 10), top: parseInt(el.css("top"), 10)
|
||||
});
|
||||
});
|
||||
};
|
||||
o = that.options;
|
||||
|
||||
if (typeof(o.alsoResize) === "object" && !o.alsoResize.parentNode) {
|
||||
if (o.alsoResize.length) {
|
||||
o.alsoResize = o.alsoResize[0];
|
||||
_store(o.alsoResize);
|
||||
} else {
|
||||
$.each(o.alsoResize, function(exp) {
|
||||
_store(exp);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
_store(o.alsoResize);
|
||||
}
|
||||
$(o.alsoResize).each(function() {
|
||||
var el = $(this);
|
||||
el.data("ui-resizable-alsoresize", {
|
||||
width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),
|
||||
left: parseInt(el.css("left"), 10), top: parseInt(el.css("top"), 10)
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
resize: function(event, ui) {
|
||||
@ -1018,35 +1004,23 @@ $.ui.plugin.add("resizable", "alsoResize", {
|
||||
width: (that.size.width - os.width) || 0,
|
||||
top: (that.position.top - op.top) || 0,
|
||||
left: (that.position.left - op.left) || 0
|
||||
},
|
||||
|
||||
_alsoResize = function(exp, c) {
|
||||
$(exp).each(function() {
|
||||
var el = $(this), start = $(this).data("ui-resizable-alsoresize"), style = {},
|
||||
css = c && c.length ?
|
||||
c :
|
||||
el.parents(ui.originalElement[0]).length ?
|
||||
[ "width", "height" ] :
|
||||
[ "width", "height", "top", "left" ];
|
||||
|
||||
$.each(css, function(i, prop) {
|
||||
var sum = (start[prop] || 0) + (delta[prop] || 0);
|
||||
if (sum && sum >= 0) {
|
||||
style[prop] = sum || null;
|
||||
}
|
||||
});
|
||||
|
||||
el.css(style);
|
||||
});
|
||||
};
|
||||
|
||||
if (typeof(o.alsoResize) === "object" && !o.alsoResize.nodeType) {
|
||||
$.each(o.alsoResize, function(exp, c) {
|
||||
_alsoResize(exp, c);
|
||||
$(o.alsoResize).each(function() {
|
||||
var el = $(this), start = $(this).data("ui-resizable-alsoresize"), style = {},
|
||||
css = el.parents(ui.originalElement[0]).length ?
|
||||
[ "width", "height" ] :
|
||||
[ "width", "height", "top", "left" ];
|
||||
|
||||
$.each(css, function(i, prop) {
|
||||
var sum = (start[prop] || 0) + (delta[prop] || 0);
|
||||
if (sum && sum >= 0) {
|
||||
style[prop] = sum || null;
|
||||
}
|
||||
});
|
||||
|
||||
el.css(style);
|
||||
});
|
||||
} else {
|
||||
_alsoResize(o.alsoResize);
|
||||
}
|
||||
},
|
||||
|
||||
stop: function() {
|
||||
|
Loading…
Reference in New Issue
Block a user