Всплытие событий и this, странное поведение
Всем привет!
Объясните дураку, почему так происходит: Создаю объект с шаблонной функцией, в теле функции используется ключевое слово this, через него пытаюсь получить имя тэга на котором произошло событие, эту функцию назначаю как событие клик двум кнопкам и все работает чудесно, но если вдобавок назначить эту же функцию как клик по BODY, то происходит следующее:
Предполагаю, что что-то не то с this, но не пойму, что именно... Исходник прилагается. Заранее Спасибо! <html> <head></head> <body> <button id="xxxz">0001</button> <button id="xxxx">0002</button> <script> var q = { xxx:function (){ this.innerHTML += this.tagName; } } var x = document.getElementById('xxxz'); x.addEventListener('click',q.xxx); var z = document.getElementById('xxxx'); z.addEventListener('click',q.xxx); document.body.addEventListener('click',q.xxx); </script> </body> </html> |
body.innerHTML изменяет содержимое body
все обработчики событий внутренних элементов затираются insertAdjacentHTML() разбирает указанный текст как HTML или XML и вставляет полученные узлы (nodes) в DOM дерево в указанную позицию. Данная функция не переписывает имеющиеся элементы, что предовращает дополнительную серелизацию и поэтому работает быстрее, чем манипуляции с innerHTML. Синтаксис element.insertAdjacentHTML(position, text); position указывает положение element, и может принимать одно из следующих значений: 'beforebegin' Перед element . 'afterbegin' Внутри element, перед первым дочерним элементом (потомком). 'beforeend' Внутри element, после последнего дочернего элемента. 'afterend' После element. text строка, которая будет проанализирована как HTML или XML и вставлена в DOM дерево документа. |
Цитата:
ТС, к этой xxx прикрути функцию инициализации ивентов после замены хтмля и усе будет чики-пуки. |
warren buffet,
читай внимательно и в предыдущих темах так-же, никто головой об доску бить не будет. еще раз подумай что написал, не понимаешь, прочитай 2-3 раза, забей и отдохни |
Цитата:
-вопрос: Как почистить унитаз если ершик сломался? -ответ: Мой раздроченым, только активнее и все будет "чики-пуки". Какой-то не точный ответ для людей связанных с точными науками) Спасибо за совет, но я пожалуй буду рациональнее расходовать ресурсы) |
Это про "серелизацию" он правильно написал? ))) Типа покакал - провел серилизацию. Угораю с вас.
Сериализация - вот как пишется селяне. Пойду бухану с горя... ))) |
Часовой пояс GMT +3, время: 08:59. |