получить ссылку на функцию
Привет.
Имеем, например <p onclick="alert('1')"> Мне надо его удалить из dom, а новому вставляемому элементу присвоить ссылку на существующий у удаляемого обработчик onclick. Как это можно сделать? Спасибо. |
получить обработчик с удаляемого элемента? если обработчик навешен посредством атрибута/свойства onclick, то и найти его можно там же, в свойстве объекта если повешен с помощью addEventListener, то надо где-то(например в отдельном свойстве-массиве элемента) хранить информацию о повешеных обработчиках, так как в явном виде они нигде не присутсвуют.так делается во всех фреймворках, насколько я в курсе. повесить обработчик на создаваемый элемент? вроде бы также не должно быть проблемы. конкретизируйте что именно у вас не получается, потому что мне кажется, вам трудностей это не должно составлять не прочитал название темы. конкретно для данного случая, повешенный обработчик находится в свойстве onclick удаляемого элемента. в случае же addEventListener, вам придется изменить свой код так, чтобы при навешивании обработчика где-то в кеше(например в неиспользуемом стандартно свойстве самого объекта) сохранялась ссылка на обработчик. иным способом получить ссылку на навешенный обработчик нельзя |
это меня на другом форуме сбили и начал подтуплять.
Понял, что через onclick. Там просто темку запостили: есть какой-то элемент и на нем различные обработчики висят и js назначенные и jQuery. Этот элемент например <p> надо поменять на <div><span></span></div> и все обработчики <p> навесить на <span>. С onclick уже понял а jQuery где-то по другому прячет, редиска. |
Вообще странно. Вот пишу на чистом JS:
Смысл - вывести все св-ва списка и среди них onchange. Жму кнопку первый раз - onchange в списке нет. Выполняю onchange списка, жму кнопку вывода - уже имеется. Почему так? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html > <head> <title>222222222222</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <style> div {background-color:#009999; height:200px; width:500px;} span {background-color:#3366FF; color:#FF0000} </style> </head> <body> <select name="xx" id="xxx" onChange="alert('111')"> <option value="1">11111</option> <option value="2">22222</option> <option value="3">33333</option> </select> </body> <button onClick="whatdo()" id="but1">Действие</button><br> <div id="ddd"></div> <script type="text/javascript"> var k = null; function copyEv(objFrom) { var ev;var s = ''; for (ev in objFrom) { if (typeof objFrom[ev] == 'function') { s += ev + '<br>'; } } document.getElementById('ddd').innerHTML = s; } function whatdo() { var obj = document.getElementById('xxx'); copyEv(obj); } </script> </html> |
Предыдущий вопрос (по js), если кто знает, остается в силе:) .
А с копированием вроде разобрался - глянул как в самом jQuery клонирование выполняется. |
Часовой пояс GMT +3, время: 09:01. |