0

我将一些事件处理程序附加到不同的元素,例如输入、选择...和窗口。如果当前元素是窗口或常见的 html 元素,我需要检查内部处理程序。我应该怎么做那个检查?

例子:

inputTextEl.attachEvent("某个事件", handler);

inputButtonEl.attachEvent("某个事件", handler);

window.attachEvent("某个事件", handler);

 var handler = function (eventName) {
    return function () {
    var message = '[' + eventName + ']';
     if (window.event) {
        message += ' eventType: ' + window.event.type;

        var target = window.event.srcElement || window.event.target;
        var id = target.id;
        if (id == '') {
                  id = target.parentNode.id;
        }
        message += ' ;eventTarget: ' + id;
     } else {
           message += ' window.event - undefined';
     }
     console.log(message); 
}; };
4

2 回答 2

0

您可以在函数处理程序中为 IE 使用以下代码

alert(Window.event.srcElement.tagName );

对于 Firefox 和 Chrome 使用

   alert(this.tagName);
于 2012-07-12T15:37:16.530 回答
0

一些浏览器使用event.target,其他浏览器使用event.srcElement

function handler(ev) {
    var event = window.event || ev;
    var target = event.srcElement || event.target;
    // event has the lowest-level element that is the target of the event
}

大多数事件永远不会window作为它们的目标,因为您不能单击/鼠标悬停/等窗口本身;相反,您对窗口中的特定元素执行这些操作。

于 2012-07-12T15:40:43.613 回答