Javascript - onclick - пузырящийся - ориентирующий элемент - PullRequest
0 голосов
/ 26 марта 2012

Справочная информация : В настоящее время я пишу сценарий greasemonkey, который встраивает / изменяет HTML-код конкретной страницы.Страница настроена с 3 вложенными div.Из этих трех элементов div я могу только добавить прослушиватель событий к самому внешнему элементу div (это связано с другими событиями и такими, которые уже добавлены к элементам).С самой внутренней частью div, ссылки добавляются через AJAX / COMET.Как и в случае с внутренними элементами div, я не могу добавить обработчики событий к этим ссылкам из-за текущих обработчиков событий страницы.

Что мне нужно : при нажатии на ссылку в самом внутреннем элементе div,событие будет пузыриться до самого внешнего div.Из самого внешнего элемента div есть способ 1: определить, была ли ссылка нажата во внутреннем элементе div, и если да, то 2: как получить href этой ссылки

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

1 Ответ

2 голосов
/ 26 марта 2012

Я бы просто использовал простой кросс-браузерный прослушиватель событий и event.target (или event.srcElement в IE), например так:

var addEvent = function (el, ev, fn) {
    if (el.addEventListener) {
        el.addEventListener(ev, fn, false);
    } else if (el.attachEvent) {
        el.attachEvent('on' + ev, fn);
    } else {
        el['on' + ev] = fn;
    }
};

var outer = document.getElementById('outer');

addEvent(outer, 'click', function(ev){
    ev = ev || window.event;
    var target = ev.target || ev.srcElement;
    alert(target.href);
});

См. Демонстрацию

...