clonenode(true)可以克隆属性,但是事件似乎没有克隆,如何克隆事件?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
clonenode是无法把克隆的节点的事件也复制过来的。
clonenode
解决方法:
写一个copy函数,可以用getEventListeners方法获取要克隆的节点的所有事件(有兼容性问题)。
copy
getEventListeners
用事件委托。
如果你用了jQuery,你可以用.clone()方法。
jQuery
.clone()
还是重新绑定事件吧,我在用爱妹子UI的时候也遇到过,我clone下拉组件,如果连事件一并clone的话,发现clone出来的下拉组件点击下拉是被克隆的那个(即点击clone出来的下拉框,被克隆的那个下拉列表被打开)。我当时的解决办法是,调用官方提供的selected样式复写的方法,其实原理也就是重新绑定事件。
一般都有只复制dom,也有复制dom+绑定的事件功能选择的,可以查一下接口
clonenode
是无法把克隆的节点的事件也复制过来的。解决方法:
写一个
copy
函数,可以用getEventListeners
方法获取要克隆的节点的所有事件(有兼容性问题)。用事件委托。
如果你用了
jQuery
,你可以用.clone()
方法。还是重新绑定事件吧,我在用爱妹子UI的时候也遇到过,我clone下拉组件,如果连事件一并clone的话,发现clone出来的下拉组件点击下拉是被克隆的那个(即点击clone出来的下拉框,被克隆的那个下拉列表被打开)。我当时的解决办法是,调用官方提供的selected样式复写的方法,其实原理也就是重新绑定事件。
一般都有只复制dom,也有复制dom+绑定的事件功能选择的,可以查一下接口