mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
dialog: fixed _position regression; wrote a test for the default positon, which still needs some tuning
This commit is contained in:
parent
c59c0421ba
commit
122a6cdd5f
@ -240,7 +240,16 @@ test("modal", function() {
|
|||||||
ok(false, 'missing test - untested code is broken code');
|
ok(false, 'missing test - untested code is broken code');
|
||||||
});
|
});
|
||||||
|
|
||||||
test("position", function() {
|
test("position, default center on window", function() {
|
||||||
|
var el = $('<div></div>').dialog();
|
||||||
|
var offset = el.parent().offset();
|
||||||
|
// use .position() instead to avoid replicating center-logic?
|
||||||
|
same(offset.left, Math.floor($(window).width() / 2 - el.parent().width() / 2));
|
||||||
|
same(offset.top, Math.floor($(window).height() / 2 - el.parent().height() / 2));
|
||||||
|
el.remove();
|
||||||
|
});
|
||||||
|
|
||||||
|
test("position, others", function() {
|
||||||
ok(false, 'missing test - untested code is broken code');
|
ok(false, 'missing test - untested code is broken code');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
55
ui/jquery.ui.dialog.js
vendored
55
ui/jquery.ui.dialog.js
vendored
@ -382,35 +382,36 @@ $.widget("ui.dialog", {
|
|||||||
// deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
|
// deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
|
||||||
// if (typeof position == 'string' || $.isArray(position)) {
|
// if (typeof position == 'string' || $.isArray(position)) {
|
||||||
// myAt = $.isArray(position) ? position : position.split(' ');
|
// myAt = $.isArray(position) ? position : position.split(' ');
|
||||||
if (!position || (typeof positon != "string" && typeof positon != "object"))
|
|
||||||
return
|
|
||||||
if (typeof position == 'string' || '0' in position) {
|
|
||||||
myAt = position.split ? position.split(' ') : [position[0], position[1]];
|
|
||||||
if (myAt.length == 1) {
|
|
||||||
myAt[1] = myAt[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
$.each(['left', 'top'], function(i, offsetPosition) {
|
if (position && (typeof positon == "string" || typeof positon == "object")) {
|
||||||
if (+myAt[i] == myAt[i]) {
|
if (typeof position == 'string' || '0' in position) {
|
||||||
offset[i] = myAt[i];
|
myAt = position.split ? position.split(' ') : [position[0], position[1]];
|
||||||
myAt[i] = offsetPosition;
|
if (myAt.length == 1) {
|
||||||
|
myAt[1] = myAt[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
$.each(['left', 'top'], function(i, offsetPosition) {
|
||||||
|
if (+myAt[i] == myAt[i]) {
|
||||||
|
offset[i] = myAt[i];
|
||||||
|
myAt[i] = offsetPosition;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
if ('left' in position) {
|
||||||
|
myAt[0] = 'left';
|
||||||
|
offset[0] = position.left;
|
||||||
|
} else if ('right' in position) {
|
||||||
|
myAt[0] = 'right';
|
||||||
|
offset[0] = -position.right;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('top' in position) {
|
||||||
|
myAt[1] = 'top';
|
||||||
|
offset[1] = position.top;
|
||||||
|
} else if ('bottom' in position) {
|
||||||
|
myAt[1] = 'bottom';
|
||||||
|
offset[1] = -position.bottom;
|
||||||
}
|
}
|
||||||
});
|
|
||||||
} else {
|
|
||||||
if ('left' in position) {
|
|
||||||
myAt[0] = 'left';
|
|
||||||
offset[0] = position.left;
|
|
||||||
} else if ('right' in position) {
|
|
||||||
myAt[0] = 'right';
|
|
||||||
offset[0] = -position.right;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('top' in position) {
|
|
||||||
myAt[1] = 'top';
|
|
||||||
offset[1] = position.top;
|
|
||||||
} else if ('bottom' in position) {
|
|
||||||
myAt[1] = 'bottom';
|
|
||||||
offset[1] = -position.bottom;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user