禁用JS定位JQuery UI对话框

时间:2013-04-16 21:53:46

标签: css jquery-ui position jquery-ui-dialog

我正在尝试禁用JS自动定位JQuery UI对话框()窗口小部件,以便我可以使用CSS定位(对定位元素的响应速度更快)。

我知道我可以像这样进行位置重置:

top: auto !important; /* for normal browsers */
left: auto !important;
top: initial !important; /* for chrome */
left: initial !important;

......但它很丑陋,而且看起来有点矫枉过正。 JQuery UI的API给了我零。

是否可以阻止JQuery UI将topleft css属性分配给UI Dialog小部件?

1 个答案:

答案 0 :(得分:1)

“位置”选项对我来说似乎相当全面,而且我不知道用纯粹的非hacky,非重要的CSS定位对话框的文档化方法。

话虽如此,这里有一个hacky,无证件,未来的失败方式来完成你的要求。它涉及覆盖内部_position方法。

JSFiddle:http://jsfiddle.net/antishok/2puF8/1/

HTML:<div id="d">hey hey</div>

CSS:

.dialog {
    position: absolute;
    left:20px;
    top:20px;
}

JS:

var d = $('#d');

d.dialog({
    autoOpen: false,
    dialogClass: 'dialog'
});

d.data('uiDialog')._position = $.noop;

d.dialog('open');

// if you want it for all dialogs:
// $.ui.dialog.prototype._position = $.noop;