我的模块中有一个表单,我想将其显示在模式窗口中。根据 ID,窗口可能为空白,或者如果它确实显示任何内容,则所有类和 ID 都会被删除,因此我无法验证表单或设置表单样式。
截断代码:
...
<div id="feedback">
<div class="feedbackinner">
<!-- form module -->
<div id="contact-wrapper">
<!--form elements with ids and classes-->
</div>
<!-- end module -->
</div><!-- end .feedbackinner -->
</div><!-- end #feedback -->
这会触发没有任何 id 或类的模式窗口(使用 Firefox Web Developer 概述当前元素):
<a href="#contact-wrapper" class="modal" rel="{handler: 'clone', clone: 'contact-wrapper'}">Click for ugly unstyled form that won't validate</a>
这会触发一个空白的模式窗口:
<a href="#feedback" class="modal" rel="{handler: 'clone', clone: 'feedback'}">Click if you like staring at a blank white box</a>
那么最重要的是,如何将所有 id 和类保留在模态窗口内,以及为什么调用父 div 不起作用?
(作为解决方法,我将表单移动到组件视图,然后使用handler: 'iframe'
而不是克隆。我还是想知道模态窗口是怎么回事。 )
Thanks!
没有看到代码,但使用的含义Element.clone
在一个元素上是显而易见的。根据 HTML 的性质,id
意味着是独一无二的。这意味着您不应该同时将多个具有相同 id 的元素注入到 DOM 中。
MooTools 通过从其创建克隆的任何元素中隐式删除 id 来正确反映情绪:
https://github.com/mootools/mootools-core/blob/master/Source/Element/Element.js#L860
the .clone
方法接受可选参数,允许您覆盖内容:
clone: function(contents, keepid){
- see http://mootools.net/docs/core/Element/Element#Element:克隆以及。
克隆元素也会丢失您可能分配给它们的所有事件(但是cloneEvents
可以帮忙)。
我建议查看挤压盒实现并仔细检查克隆是否以预期方式实现。更好的做法可能是采用并重新附加元素 - 或者复制整个innerHTML(尽管这将再次导致非委托事件失败)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)