我将一些事件处理程序附加到不同的元素,例如input,select ...和window。如果当前元素是窗口或常见的html元素,我需要检查内部处理程序。我应该如何进行检查?
示例:
inputTextEl.attachEvent(“some event”,handler);
inputButtonEl.attachEvent(“some event”,handler);
window.attachEvent(“some event”,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);
}; };
答案 0 :(得分:0)
您可以在函数处理程序
中使用以下代码进行IEalert(Window.event.srcElement.tagName );
对于Firefox和Chrome使用
alert(this.tagName);
答案 1 :(得分: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
为目标,因为您无法单击/鼠标悬停/等窗口本身;相反,您可以对窗口中的特定元素执行这些操作。