如何复制元素's事件及其内部HTML
How do I copy an element's events with its innerHTML?
我在我的网络应用程序中加入了一个简单的灯箱功能:
for(var i = 0, l = figs.length; i<l; i++){
figs[i].addEventListener("dblclick",function(){
lightbox.style.display = "block";
lbox.innerHTML = this.innerHTML;
});
}
问题是,我希望div的交互性复制到lightbox中(这些图都有事件监听器,使它们具有交互性)。有没有什么方法可以实现这一点——将所有事件存储在一个数组中并以某种方式复制这些事件?
除非您使用jQuery
,否则您将无法克隆具有所有事件处理程序的节点,即使可以,这通常也不是一个好主意(如果需要,我可以扩展)。
我想这些监听器是通过一些针对这些DOM节点的进程连接的(例如应用插件)。您应该做的只是简单地使用Element.prototype.cloneNode
对您想要的DOM元素进行深度或浅层复制,然后对克隆重新执行这些过程。
如果克隆过程很复杂,您可以考虑将其封装在添加侦听器的类中。类似于:
function SomeObj(el) {
this.el = el;
attachSomeHandlersToEl();
}
SomeObj.prototype.clone = function () {
var newEl = this.el.cloneNode(true);
return new this.constructor(newEl);
};
var el = document.getElementById('some-el'),
someObj = new SomeObj(el),
clonedEl = someObj.clone().el;
相关文章:
- 如何使Javascript动态html表及其上的事件
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何在HTML列表中添加事件's子弹
- Html按钮点击事件未触发单选按钮
- 如何在tinymce编辑器中将点击事件绑定到html标签
- RouteChangeStart事件在初始index.html页面加载时触发
- 侦听HTML呈现过程事件
- 枚举附加到文档的HTML对象的所有事件
- 当select标记触发onChange事件时,从mysql数据库加载html表
- 我需要java代码来打开html代码onclick事件
- 重叠对象上的HTML画布事件
- 如何将事件绑定到从AJAX请求注入的HTML
- AngularJS$apply有时不会;当在highchart中使用click事件时,t触发更新{{}}中html标记中
- HTML输入框未触发事件
- Google图表HTML工具提示,其中包含javascript onclick事件
- javascript在附加的html中点击事件订阅
- 如何在没有POST/GET/FORM的情况下在onclick事件HTML中设置PHP会话
- 从按钮触发onchange事件html输入文件
- 处理多个滑动事件HTML &Javascript / jQuery
- 可以在Javascript的onclick事件(HTML)中使用正则表达式