gpt4 book ai didi

javascript - 定义 JavaScript 事件对象

转载 作者:行者123 更新时间:2023-12-03 16:28:22 26 4
gpt4 key购买 nike

为什么我收到这段代码的错误?:

function catchevent() 
{
eventSrcID=(event.srcElement)?event.srcElement.id:'undefined';

eventtype=event.type;

status=eventSrcID+' has received a '+eventtype+' event.';
}

Firefox 说 event 没有定义。实际上,这是从here复制过来的它清楚地表明它适用于 IE5。我在 Ubuntu 上使用 Firefox 3.6.13。

我的问题不是为什么它不能在我的浏览器上运行。相反,有没有一种方法可以按照链接的建议定义适用于我的浏览器的 event 对象?

更新

为什么这行不通

<html>
<head>
<script>
function catchevent( e ) {
// reference the proper event object
var e = e || window.event;

// reference the proper target
var srcElem = e.target || e.srcElement; //line no 9

// get the id of the target
var eventSrcID = srcElem.id;

alert(eventSrcID);
}
</script>
</head>
<body>
<a id="link1" href="#" onclick="catchevent()">link1</a>
<a id="link2" href="#" onclick="catchevent()">link2</a>
<a id="link3" href="#" onclick="catchevent()">link3</a>

</body>
</html>

为此,我仍然在第 9 行遇到错误

e is undefined
[Break On This Error] var srcElem = e.target || e.srcElement;

现在我需要如何在 catchevent() 上传递 event 对象或者是否有错误?请提出建议。

最佳答案

在 Firefox 和其他符合 W3C 标准的浏览器中,处理函数将接收一个事件对象作为函数的参数。

IE 使用全局 event 对象。

这是您的代码的跨浏览器解决方案。

function catchevent( e ) {
// reference the proper event object
var e = e || window.event;

// reference the proper target
var srcElem = e.target || e.srcElement;

// get the id of the target
var eventSrcID = srcElem.id;

// get the event type
var eventtype = e.type;

// create the status string
var status = eventSrcID + ' has received a ' + eventtype + ' event.';
}

您会注意到我在创建变量时使用了 var 关键字。您应该这样做,否则您将创建全局变量。

另请注意,关键字 this 将是对分配了处理程序的元素的引用。

关于javascript - 定义 JavaScript 事件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5055228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com