Показать сообщение отдельно
  #1 (permalink)  
Старый 07.01.2014, 17:53
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Делегирование события
Приветсвую всех, уважаемые пользователи форума!

Написал такой скрипт для делегирования событий:

(function() {
	var d = document.documentElement,
		m = d.matchesSelector || d.webkitMatchesSelector || d.oMatchesSelector || d.mozMatchesSelector || d.msMatchesSelector;
	
	Element.prototype.addEventDelegate = function(type, selector, fn) {
		this.addEventListener(type, function(e) {
			e = e && e.target || window.event.srcElement;
			if(m.call(e, selector)) {
				fn.call(e);
			}
		}, false);
	}
})();


window.onload = function() {
	document.body.addEventDelegate('click', 'p', function() {
		alert('Вы кликнули по тэгу "p"!');
	});
}


Всё работает, но... когда кликаешь по более вложенному элементу, то событие для родительского элемента не срабатывает. Нужно, чтобы всё работало как в jQuery. Кто-нибудь знает, как более грамотно так сделать?
Спасибо.
Ответить с цитированием