lhgdialog如何把页面上的元素直接作为dialog内容显示?

gtd 发布于 2012/05/26 11:20
阅读 2K+
收藏 1

@lhgcore 你好,想跟你请教个问题:

lhgdialog如何把页面上的元素直接作为dialog内容显示?

举个例子:  页面上有个隐藏元素
<div id="registerDivWrap" style="display:none;">

  <div id="registerDiv" >
    <form id="f1" name="f1" ......>
        <input type="text" name="username"  ..../>
       ................
    </form>
  </div>

</div>

如何把 #registerDiv  直接作为弹窗内容显示? 

我这样处理 { content: $("#registerDivWrap").html() }

虽然勉强能运行,但有存在一些问题:
    1、用html()复制一份DOM元素, 弹窗后会生成同样ID的DOM节点两份(此例中弹窗后 id=registerDiv 和 f1 的元素就存在两份)

    2、如果弹窗中某些元素的事件通过$(document).ready绑定的话,在弹窗中会失效。(除非每次弹窗口再显式执行事件绑定)

所以不知道lhgdialog能否支持把 #registerDiv 的DOM元素整个直接作为content显示出来,

而不需要.html()复制一份DOM节点?


期待您的回答,谢谢!

加载中
0
墨龙
墨龙
对于这个ID你可以在html()获取之后再改变这个ID啦,用attr()
gtd
gtd
回复 @郭平平 : 如果事件是 $($("#username").blur(......)) ; 类似这样绑定的,通过你说的方式处理, 也一样不能自动把事件绑定上。
墨龙
墨龙
就用html()获取这个内容啊,然后用remove()移除这个内容,你提到的这两个问题估计就不会出现了,你第二个绑定的事件应该就是两个id的冲突问题
gtd
gtd
@郭平平 怎么获取这个内容?
墨龙
墨龙
@gdp8 那就更好整了,先获取这个内容,再移除这个内容,关闭dialog时再放回远处
gtd
gtd
我的需求是把那段DOM节点原封不动移到dialog的content里显示,没必要生成个副本作为其内容。 而且#registerDiv中的元素可能很复杂,我不想每个元素id都改一下,事件绑定都处理一遍。
返回顶部
顶部