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');
|
||||
});
|
||||
|
||||
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');
|
||||
});
|
||||
|
||||
|
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 :-(
|
||||
// if (typeof position == 'string' || $.isArray(position)) {
|
||||
// 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 (+myAt[i] == myAt[i]) {
|
||||
offset[i] = myAt[i];
|
||||
myAt[i] = offsetPosition;
|
||||
if (position && (typeof positon == "string" || typeof positon == "object")) {
|
||||
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 (+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