Sayfada bir textarea yazıyorum ama klonlanmış öğenin birincil öğesinin herhangi bir olayı yok, klonlanmış öğedeki tüm olayları klonlamanın bir yolu var mı?Tüm olayları içeren klonlama öğesi
var dupNode = node.cloneNode(deep);
Sayfada bir textarea yazıyorum ama klonlanmış öğenin birincil öğesinin herhangi bir olayı yok, klonlanmış öğedeki tüm olayları klonlamanın bir yolu var mı?Tüm olayları içeren klonlama öğesi
var dupNode = node.cloneNode(deep);
getEventListeners
düğümlerinde kullanabilirsiniz? Desteğin ne olduğunu bilmiyor musunuz, yoksa sadece konsolda destekleniyor mu?
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);
Ama getEventListeners
gerçekten desteklenmediğini görünüyor:
Get event listeners attached to node using addEventListener
Eğer düğüm üzerinde de tüm olay özelliklerini kopyalamak gerekirse Tüm bir listeye ihtiyacınız olacak ve daha sonra bunları kopyalayın:
['onclick', 'onmouseover', '...'].forEach(function(method) {
dupNode[method] = node[method];
});
Son günlerde çözüm bu sorunu ve bu eski sonrası her ihtimale karşı birileri öğrenmek için çalışıyor içinde, hatta o, ben eklemek çözme edildi: addEventListener
kullanmak yerine
var button = document.createElement("i");
var click = document.createAttribute("onclick");
click.value = "FunctionName(this)";
button.attributes.setNamedItem(click);
, sadece işlevi oluşturmak FunctionName
. Bu, addEventListener
Bu OP'in sorusuna nasıl cevap veriyor? StartRecorind nedir? 'Typ' nedir? – m02ph3u5
Kullanan nesneleri genişletiyorsanız, yararsızdır. [Bir DOM düğümünün olay dinleyicileriyle nasıl kopyalanacağı?] Olası kopyası (http://stackoverflow.com/questions/15408394/how-to-copy-a -dom-node-with-event-diners) – Nickolay