[英]store event listeners from a dom element in javascript
是否可以存储元素中的所有事件侦听器以便在克隆元素后进行检索
//clone element makes event listeners stripped
var old_element=document.getElementById('dhtml_menu-1895');
// var el= alleventlistenersfrom this element
var new_element = old_element.cloneNode(true);
old_element.parentNode.replaceChild(new_element, old_element);
//some event actions
//give back original event listeners
我认为解决问题的真正方法是将事件绑定到DOM上的元素,这样就不必在创建元素时动态绑定事件。
所以我假设你有这样的事情:
<div class='parent'>
<div class='element-to-replace'></div>
</div>
并且您正在代码中的某个位置.element-to-replace
,但是您在其上具有事件侦听器,如下所示:
document.querySelector('.element-to-replace').addEventListener('click', doSomething);
在这种情况下,您应该绑定到父元素,因为它永远不会改变并定位您的子元素。
document.querySelector('.parent').addEventListener('click', function(evt) {
if (evt.target.className.includes('element-to-replace'))
doSomething();
});
您可以这样做,也可以抽象出这些新元素的创建并将事件绑定代码放在功能块中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.