我正在尝试禁用 JQuery UI dialog() 小部件的 JS 自动定位,以便我可以使用 CSS 进行定位(这对定位元素的响应更快)。
我知道我可以像这样进行位置重置:
top: auto !important; /* for normal browsers */
left: auto !important;
top: initial !important; /* for chrome */
left: initial !important;
…但这很丑陋,而且看起来有点矫枉过正。 JQuery UI 的 API 给我 nil。
是否可以阻止 JQuery UI 将 top
和 left
css 属性分配给 UI Dialog 小部件?
最佳答案
“位置”选项对我来说似乎非常全面,而且我不知道有记录的方法可以使用纯非 hacky、非 !important CSS 来定位对话框。
话虽如此,这里有一个 hacky、未记录、 future 注定会失败的方法来完成您的要求。它涉及覆盖内部 _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;
关于css - 禁用 JQuery UI 对话框的 JS 定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16047795/