Всем привет!
Объясните дураку, почему так происходит:
Создаю объект с шаблонной функцией, в теле функции используется ключевое слово
this, через него пытаюсь получить имя тэга на котором произошло событие, эту функцию назначаю как событие клик двум кнопкам и все работает чудесно, но если вдобавок назначить эту же функцию как клик по BODY, то происходит следующее:
- кликаю по кнопке (любой из двух) первый раз, срабатывает как надо (событие кнопки, затем событие body)
- кликаю второй раз (опять же не важно по какой, той же или по соседу), и срабатывает только событие BODY игнорируя событие кнопки
- дальше куда не кликай срабатывает только событие BODY, событие кнопки кликом мыши вызвать не удается, можно вызвать только через dispatchEvent
Предполагаю, что что-то не то с 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>