Ха, дух.использование element.on<event>
- это просто установка свойства в DOM для элемента, что означает, что каждое событие может иметь только один обработчик.Вместо этого мне нужно использовать addEventListener
в сочетании с правильным использованием event.preventDefault()
и event.stopPropagation()
В моих первых попытках я ставил то, что хотел, чтобы быть первым обработчиком, вторым, но это действительно означалоэто было на первом месте.В этом случае мне сначала нужно поставить нужный обработчик, так как обработчик присоединяется к событию.
Мой исправленный код должен быть:
document.onclick = function()
{
document.body.innerHTML += "You clicked me!";
};
document.getElementById("link").addEventListener("click",function() {
this.innerHTML += " Go ahead, ";
});
document.getElementsByTagName("a")[0].addEventListener("click",function(e) {
this.innerHTML += " Click it!";
e.stopPropagation();
e.preventDefault();
});
http://jsbin.com/ecozep/8/edit