Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Один обработчик на все клики
Часто встречается ситуация, когда нужно назначить обработчик события на много элементов. Это решение отнимает много ресурсов и долго выполняется. Более элегантное решение, поставить обработчик на внешний блок и определять, на каком элементе произошел клик мышкой.
Обратите внимание, что при клике по ссылке к ней добавляется '?name=value'.
Ссылка для примераИсходный код этого примера:
<a class='bundle' href=''>Ссылка для примера</a>
<script language="JavaScript">
var MMNav = {
init: function() {
document.onclick = function(e) {
var target = getEventTarget(e);
if (target && target.className == 'bundle' ) {
target.href += '?name=value';
}
return true;
};
}
}
function getEventTarget(e) { // мультибраузерная функция
var e = e || window.event;
var targ = e.target || e.srcElement;
while (targ && (!targ.href || targ.nodeType == 3)) { // боремся с Safari и вложенностью
targ = targ.parentNode;
}
return targ;
}
window.onload=MMNav.init;
</script>
.
Прокомментировать/Отблагодарить