控制 jquery UI 对话框的 DOM 位置

发布于 2024-12-28 02:13:52 字数 402 浏览 1 评论 0原文

我正在尝试创建一个 jQueryUI 对话框,并将其插入特定元素内的 dom 中。我们有一个内容部分,它是许多样式的父级,因此对话框中的项目没有样式,因为 jqueryUI 会追加到正文。有没有办法告诉 jqueryUI 附加到我选择的选择器?

它做什么

<section id="content">
</section>
<div class="dialog"> the dialog </div>

我想要什么

<section id="content">
<div class="dialog"> the dialog </div>
</section>

I'm trying to create a jQueryUI Dialog and have it insert itself into the dom within a specific element. We have a content section that is the parent of a number of styles so items within the dialog are not styled since jqueryUI does an append to body. Is there a way to tell jqueryUI to append to a selector of my choosing?

What it does

<section id="content">
</section>
<div class="dialog"> the dialog </div>

what I want

<section id="content">
<div class="dialog"> the dialog </div>
</section>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

别念他 2025-01-04 02:13:52

我知道这个问题有点老了,但我想确保所有新来者都指向正确的方向。 1.10.0 版本中添加了“appendTo”选项。

$( ".selector" ).dialog({ appendTo: "#someElem" });

您可以在此处阅读

I know this question is a little old but I wanted to make sure any new comers were pointed in the right direction. The option "appendTo" was added in version 1.10.0.

$( ".selector" ).dialog({ appendTo: "#someElem" });

You can read about it here

聚集的泪 2025-01-04 02:13:52

来自自定义 CSS 范围和 jQuery UI 对话框主题

// Create the dialog, but don't open it yet
var d = $('#myDialogContents').dialog({
    autoOpen: false
    // other dialog options
});
// Take whole dialog and put it back into the custom scope
d.parent('.ui-dialog').appendTo('.myCustomScope');
// Open the dialog (if you want autoOpen)
d.dialog('open');

From Custom CSS scope and jQuery UI dialog themes

// Create the dialog, but don't open it yet
var d = $('#myDialogContents').dialog({
    autoOpen: false
    // other dialog options
});
// Take whole dialog and put it back into the custom scope
d.parent('.ui-dialog').appendTo('.myCustomScope');
// Open the dialog (if you want autoOpen)
d.dialog('open');
红衣飘飘貌似仙 2025-01-04 02:13:52

此链接也许有用。
但在我看来,您想要实现的目标有点违背 jQuery UI 库的模型。您可以使用此页面上的“主题”选项卡中指定的 CSS 类来设置对话框的样式。
如果您可以将要制作为对话框的元素的 id 传输到类,则可以使用以下代码

$( ".dialog" ).dialog({ dialogClass: 'content' });

,并且应该更新 CSS 以反映更改。因此,如果您在对话框内容中复制 #content 标记,则不会引入重复的 id-s(这可能会在将来的工作中导致问题,并且在语义上是不正确的)

This link maybe of some use.
But the thing you'd like to achieve seems to me a bit against the model of jQuery UI library. You can style the dialog using the CSS classes specified in the Theme tab on this page.
If you can transfer the id of the element, you want to make into a dialog, to a class, you can use the following code

$( ".dialog" ).dialog({ dialogClass: 'content' });

and you should update your CSS to reflect the change. Thus you do not introduce duplicate id-s (which may lead to problems in future work and is semantically incorrect), if you duplicate the #content tag inside the dialog content

却一份温柔 2025-01-04 02:13:52

您可以使用 jquery 的 append 方法。

$('#content').append('<div class="dialog"> the dialog </div>');

You can use jquery's append method.

$('#content').append('<div class="dialog"> the dialog </div>');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文