Javascript - onclick - 冒泡 - orignating元素

时间:2012-03-26 01:39:01

标签: javascript events onclick element

背景: 我目前正在编写一个包含/修改特定页面的html的greasemonkey脚本。该页面设置有3个嵌套的div。在这3个div中,我只能向最外层的div添加一个事件监听器(这是由于其他事件和已添加到元素中的事件)。使用最内部的div,通过AJAX / COMET添加链接。与内部div一样,由于页面的当前事件处理,我无法向这些链接添加事件处理程序。

我需要的内容:当点击最内层div中的链接时,该事件将冒泡到最外层的div。从最外面的div,有一种方法1:告诉它是否是在最内层div中点击的链接,如果是,2:如何获得该链接的href

请不要使用jQuery解决方案。这似乎有点过分感觉这是唯一嵌入页面的javascript

1 个答案:

答案 0 :(得分:2)

我只会使用一个简单的跨浏览器事件监听器和event.target(或IE中的event.srcElement),如下所示:

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);
});

See demo