Скопировать обработчики событий с одного элемента на другой.
Есть 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); } здесь не происходит "копирования" обработчиков, а просто возбуждается :yes: событие исходного "донорского" элемента, значит удалить этот элемент нельзя - не сработает обработчик, к тому же я не знаю наперед список отрабатываемых событий. Господа, нужна ваша помощь. Как решить задачу? |
а. прочитать все маны на этом сайте, признаться себе что чайник и прочитать все повторно.
б. клонирование, но без "а" этого делать не стоит. в. получить указатель на целевую хрень, получить указатель на свою хрень и подвесить эвенты целевой хрени на свою хрень. Что там було не важно. Ничего не понял? Тогда только "а". |
Цитата:
Цитата:
Цитата:
Цитата:
Можно ли узнать какие события обрабатываются в этом элементе (как получить список обработчиков, а точнее событий), а не всех возможных? |
Цитата:
Возможно и есть варианты, но я пока не компетентен в данном вопросе. Если нужно задачу решить, то всегда есть решение "в лоб". За красотой в гугл ;) |
Часовой пояс GMT +3, время: 14:30. |