如何在IE9中访问Event.target?

Ian*_*oyd 11 html events internet-explorer dom internet-explorer-9

HTML DOM对象模型定义具有属性Event对象.target

查看MSDN,Microsoft记录了一个target属性.它们还记录srcElementtarget早期版本的Internet Explorer 的别名:

目标性质类似于srcElement在Windows Internet Explorer 8和更早版本.


所以我在Internet Explorer中,坐在click断点处:

<div class="day" onclick="divClick(this)">

function divClick(sender)
{
   var divCell = sender;
Run Code Online (Sandbox Code Playgroud)

F12工具控制台,我可以要求全局event对象:

>> event 
{
    actionURL : "",
    altKey : false,
    altLeft : false,
    behaviorCookie : 0,
    behaviorPart : 0,
    bookmarks : null,
    boundElements : {...},
    button : 0,
    buttonID : 0,
    cancelBubble : false
    ...
} 
Run Code Online (Sandbox Code Playgroud)

我可以要求event.srcElement对象:

>> event.srcElement 
{
    align : "",
    noWrap : false,
    dataFld : "",
    dataFormatAs : "",
    dataSrc : "",
    currentStyle : {...},
    runtimeStyle : {...},
    accessKey : "",
    className : "header",
    contentEditable : "inherit"
    ...
} 
Run Code Online (Sandbox Code Playgroud)

但是event.target空的:

>> event.target 
Run Code Online (Sandbox Code Playgroud)

如果我 event,没有target财产:

在此输入图像描述

那么我如何在Internet Explorer中访问对象的target属性event(9(文档模式:IE9标准(浏览器模式:IE9)))?

Rob*_*ick 13

event.target?

你需要检查它并将其分配给变量并使用它来代替..

  var target = event.target ? event.target : event.srcElement;
Run Code Online (Sandbox Code Playgroud)

可能会忽略这一点......


Tee*_*emu 4

如果你想在 IE9 中使用event.target,你需要使用addEventListener()-method 为元素分配事件处理程序。

<div id="day" class="day"></div>

document.getElementById('day').addEventListener('click',divClick,false);

function divClick(e){
   alert(e.target);
   divCell=this;
   :
}
Run Code Online (Sandbox Code Playgroud)

您可以简单地使用关键字来divClick()引用。参数包含对事件对象本身的引用。daythise

顺便说一句,在 MSDN 中,您可能可以找到更适合Web 开发而不是 Windows 开发的IE 文档。