IE浏览器中的Firefox样式onclick参数

时间:2008-11-21 11:39:43

标签: javascript javascript-events

在firefox中,当向方法添加onclick事件处理程序时,事件对象会自动传递给该方法。除其他外,这允许检测单击哪个特定元素的能力。例如

document.body.onclick = handleClick;

function handleClick(e)
{
    // this works if FireFox
    alert(e.target.className);
}

有没有办法在IE中近似这个?我需要能够检测从body元素上的事件处理程序中单击的元素。

4 个答案:

答案 0 :(得分:7)

如果我不能使用jQuery

,我将如何做到这一点
document.body.onclick = handleClick;

function handleClick(e)
{
    //If "e" is undefined use the global "event" variable
    e = e || event;

    var target = e.srcElement || e.target;
    alert(target.className);
}

这是一个jQuery解决方案

$(document.body).click(function(e) {
  alert($(this).attr("class"));
});

答案 1 :(得分:3)

这不是将事件添加到dom节点的批准标记。

if (el.addEventListener){
  el.addEventListener('click', modifyText, false); 
} else if (el.attachEvent){
  el.attachEvent('onclick', modifyText);
}

推荐的用于绑定点击事件的表示法是否跨浏览器友好。

见:

此外,单击某个事件时,执行的回调函数包含一个对象“this”,它是被单击的实体。

function foo() { 
   window.open(this.src, '_blank'); 
}

答案 2 :(得分:2)

在IE浏览器中

e.srcElement

答案 3 :(得分:0)

我认为IE使用名为event的变量。看看是否有效?