Есть html-элемент на странице (например div).
На нём висят разные обработчики событий (их набор заранее не известен).
Прямого доступа к коду этих обработчиков нет.
Необходимо динамически создать элемент так, чтобы на нём висели те же самые обработчики тех же самых событий.
Что я делал:
Узнал, что нет способа узнать какие именно обработчики висят на элементе (если только они не назначены через атрибут), значит и скопировать их не получится.
Узнал, что можно сделать так:
<div id="first">first</div><br/>
<div id="simulate">simulate</div>
var first = document.getElementById('first'),
simulate = document.getElementById('simulate'),
fHandler = function(){
console.log('ok');
};
first.onclick = fHandler;
//при наведении мышки на элемент "simulate" срабатывает обработчик 'onclick' элемента "first"
simulate.onmouseover = function(){
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
first.dispatchEvent(evt);
}
здесь не происходит "копирования" обработчиков, а просто возбуждается
событие исходного "донорского" элемента, значит удалить этот элемент нельзя - не сработает обработчик, к тому же я не знаю наперед список отрабатываемых событий.
Господа, нужна ваша помощь.
Как решить задачу?