84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
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+绑定的事件功能选择的,可以查一下接口