为什么我的jQuery UI对话框在嵌套div时不显示?

Her*_*ras 5 jquery user-interface dialog

我正在尝试显示另一个div内的对话框(div).这样,我可以轻松地将所有对话框保持在一起.

该页面看起来像这样:

<div id="bookshelf">
    <div id="login">dialog</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我已经为它添加了所需的属性:

$("div#bookshelf div#login").dialog({ autoOpen: false });
Run Code Online (Sandbox Code Playgroud)

并尝试让它出现:

$("div#bookshelf div#login").dialog("open");
Run Code Online (Sandbox Code Playgroud)

它不会.

但是,如果我将最后一行更改为

$("div#login").dialog("open");
Run Code Online (Sandbox Code Playgroud)

它确实!但是我不想直接引用它,因为我的页面上的其他内容在某些时候也会被称为"登录".而且我想停止制作像id ="lp_dialogs_bookshelf_login"那样长的id.

我在这里做错了吗?或者我应该忘记它,并再次开始使用那些讨厌的id?

Nic*_*ver 10

创建对话框时,它移动了这个:

<div id="login">dialog</div>
Run Code Online (Sandbox Code Playgroud)

在你的html文档的末尾,就在之前</body>,所以选择器$("div#bookshelf div#login")找不到它......因为它不在里面了.

我会div#login在所有情况下都使用它,因为它应该是唯一的,但是为了使你的示例工作,你需要在创建后移动对话框,如下所示:

$("div#bookshelf div#login").dialog({ autoOpen: false })
                            .parent().appendTo('#bookself');
Run Code Online (Sandbox Code Playgroud)