AAA Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Один обработчик на все клики

Часто встречается ситуация, когда нужно назначить обработчик события на много эллементов. Это решение отнимает много рессурсов и долго выполняется. Более элегантное решение, поставить обработчик на внешний блок и определять, на каком эллементе произошел клик мыши.

Обратите внимание, при клике по ссылке, к ней добавиться '?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>


.

© Copyright 2008-2016 by KDG