有没有什么办法让jQuery [UI]在原地生成dialog?或者轻松将其移回并使其工作?保持对话框div放在哪里
YUI2's Panel给了你这样做的自由,它假定你知道你在做什么,并把标记放在你放置它的地方。
但现在我已经转向使用更简单的jQuery,我注意到了一个限制; jQuery UI似乎只能在body
下直接创建对话框。
考虑this example;
假设您想使用div作为命名空间CSS的一种方式。
通过在.className
前加上所有选择器,并写入与class="className"
分隔的标记,写入与功能相关的样式表。
Some
<div class="sectiona">
<div class="popup" title="A popup">
This text should be <span class="emphasis">blue</span>
</div>
</div>
irrelevant
<div class="sectionb">
<div class="popup" title="B popup">
This text should be <span class="emphasis">red</span>
</div>
</div>
content
<script>$(function() { $('.popup').dialog(); });</script>
.emphasis {
color : yellow;
}
.sectiona .emphasis {
color : blue;
}
.sectionb .emphasis {
color : red;
}
弹出的div(.popup
)将被移动到身体,失去所有的CSS! (在现实生活中显然会更复杂)。 由于所有的对话框/面板都是绝对定位的,我希望它们保存的div具有静态位置,并且是身体的儿童,它wouldn't make any difference at all to keep them there。
不要把这个CSS命名空间技术(如果这是正确的,甚至措辞)作为本想唯一的原因,我敢肯定还有其他的用例
所以这个问题的短版本是:**“jQuery用户界面从其初始位置移动对话框元素到'身体',使它成为一个直接的孩子。有没有办法阻止它做到这一点?“**这是正确的吗? –
或者在它犯了这个错误之后将它移回去,这就是第一条线在接下来要扩展的时候要做的事,如果有一面我可以通过到'dialog()',太棒了,否则一个不会破坏事物的解决方法就可以使用了。 – Hashbrown
@ Hashbrown:你会发现人们更感兴趣的是帮助那些没有咆哮的人,不要再称它为“大错特错“等等,并记住jQuery和jQuery UI **为你节省了多少时间**所以他们做了一个你不同意的选择(我也是这样),不需要继续下去 –