मैं एक पृष्ठ में एक टेक्स्टरी क्लोन कर रहा हूं लेकिन क्लोन तत्व में प्राथमिक तत्व की कोई घटना नहीं है, क्या क्लोन तत्व में सभी घटनाओं को क्लोन करने का कोई तरीका है?अपनी सभी घटनाओं के साथ क्लोन तत्व
var dupNode = node.cloneNode(deep);
मैं एक पृष्ठ में एक टेक्स्टरी क्लोन कर रहा हूं लेकिन क्लोन तत्व में प्राथमिक तत्व की कोई घटना नहीं है, क्या क्लोन तत्व में सभी घटनाओं को क्लोन करने का कोई तरीका है?अपनी सभी घटनाओं के साथ क्लोन तत्व
var dupNode = node.cloneNode(deep);
आप शायद getEventListeners
नोड्स पर उपयोग कर सकते हैं? पता नहीं कैसे समर्थन है, या अगर यह केवल कंसोल में समर्थित है?
function cloneMassive(node) {
// Clone the node, don't clone the childNodes right now...
var dupNode = node.cloneNode(false);
var events = getEventListeners(node);
for(var p in events) {
// All events is in an array so iterate that array:
events[p].forEach(function(ev) {
// {listener: Function, useCapture: Boolean}
dupNode.addEventListener(p, ev.listener, ev.useCapture);
});
}
// Also do the same to all childNodes and append them.
if (node.childNodes.length) {
[].slice.call(node.childNodes).forEach(function(node) {
dupNode.appendChild(cloneMassive(node));
});
}
return dupNode;
}
var dupBody = cloneMassive(document.body);
लेकिन यह है कि वास्तव में getEventListeners
समर्थित नहीं है लगता है:
Get event listeners attached to node using addEventListener
तुम भी नोड पर सभी घटना गुण कॉपी करने के लिए की जरूरत है आप सभी की एक सूची की आवश्यकता होगी, और फिर बस उन्हें कॉपी करें:
['onclick', 'onmouseover', '...'].forEach(function(method) {
dupNode[method] = node[method];
});
मैं इस समस्या को मेरी समाधान को सुलझाने था हाल ही में और यहां तक कि कि इस पुरानी पोस्ट है, बस में मामला किसी पता लगाने के लिए कोशिश कर रहा है, मैं जोड़ें: addEventListener
का उपयोग करने का
var button = document.createElement("i");
var click = document.createAttribute("onclick");
click.value = "FunctionName(this)";
button.attributes.setNamedItem(click);
इसके बजाय, बस समारोह बनाने FunctionName
। वैसे यह बेकार है यदि आप addEventListener
यह ओपी का सवाल कैसे जवाब देता है? 'StartRecorind' क्या है? 'टाइप' क्या है? – m02ph3u5
का संभावित डुप्लिकेट [ईवेंट श्रोताओं के साथ एक डोम नोड की प्रतिलिपि कैसे करें?] (Http://stackoverflow.com/questions/15408394/how-to-copy-a -डोम-नोड-साथ-ईवेंट-श्रोताओं) – Nickolay