Есть несколько способов прикрепить обработчик кликов без использования библиотеки. Первый - это присвоение функции свойству on[eventname]
элемента:
element.onclick = function (eventObj) {
alert("textContent" in this ? this.textContent : this.innerText)
}
Вы также можете назначить строку кода для оценки, но она не так хороша и обычно ее избегают. Другой способ - использовать стандарт w3c addEventListener
:
element.addEventListener("click", function (eventObj) {
alert("textContent" in this ? this.textContent : this.innerText)
}, false);
Это не поддерживается текущими версиями IE, для которых требуется attachEvent
:
element.attachEvent("onclick", function () {
alert(event.srcElement.innerText);
});
IE имеет проблемы с применением функции к элементу, вызвавшему событие, поэтому this
не будет правильно указывать на этот элемент с attachEvent
.
Первый метод element.onclick
полезен для совместимости с x-браузером и быстрого кодирования, но для свойства можно назначить только одну функцию. Используя attachEvent
и addEventListener
, вы можете прикрепить столько функций, сколько захотите, и все они будут срабатывать правильно. Вы можете создать кросс-браузерный полуэквивалент, выполнив простые проверки функциональности в своем коде:
if ("addEventListener" in element)
element.addEventListener("click", function (eventObj) {
alert("textContent" in this ? this.textContent : this.innerText)
}, false);
else
element.attachEvent("onclick", function () {
alert(event.srcElement.innerText);
});