2

我正在尝试禁用 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 给了我零。

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

4

1 回答 1

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;
于 2013-04-17T01:45:32.947 回答