参数e(事件)到底是什么?为什么将其传递给JavaScript函数?
好了,当我学习JavaScript时,我阅读的所有书籍和Internet文章都显示了将参数传递给e
处理JavaScript事件的函数的代码,例如下面的代码块:
function myEvent(e) { var evtType = e.type
alert(evtType)
// displays click, or whatever the event type was
}
我一直都接受这种方式,但是现在我有一些问题(这让我很困惑):
- 这
e
是哪里来的?当我查看整个JavaScript文件时,e
似乎根本不存在。 - 为什么要将此参数传递
e
给函数?如果我不传递e
给函数,函数会停止工作吗? - 考虑下面的代码块。有一个事件变量(
e
)传递给匿名内部函数。假设我想在匿名函数之外使用事件对象(可能在该行的上方/下方element.onkeypress
)。我怎样才能做到这一点?element.onkeypress = function(e) {
if(e.keyCode) {
element.keyCode = e.keyCode;
} else {
element.keyCode = e.charCode;
}
};
回答:
在e
很短的event
创建事件的最简单方法是单击页面上的某个位置。
当您单击时,将click
触发一个事件。这event
实际上是一个对象,其中包含有关刚刚发生的操作的信息。在此示例的情况下,事件将具有诸如单击坐标(event.screenX
例如),单击的元素(event.target
)等信息。
现在,事件一直在发生,但是您对所有发生的事件都不感兴趣。当你感兴趣然而,在一些情况下,当你添加一个事件监听器,你知道会创建活动[1]的元素。例如,您有兴趣知道 并且希望在此事件发生时 。
为了对这个事件做一些事情,您将 绑定到您感兴趣的按钮。将处理程序绑定到元素的方法是do
element.addEventListener(eventName, handler)
。
eventName
是一个字符串,它是您感兴趣的事件的名称,在这种情况下,它将是'click'
(针对该click
事件)。
处理程序只是一个 ,它在事件发生时会执行某些操作(已执行)。默认情况下,处理程序函数在执行时
(当您感兴趣的事件/操作发生时创建) 。
将event
a 定义为处理函数的参数是可选的,但有时(大多数情况下),对于处理函数了解发生的事件很有用。当你 定义它。请记住,event
只是一个普通的javascript对象,上面有很多属性。
希望能有所帮助。
至于第三个问题,现在您应该知道您不能这样做,因为e
仅在事件发生时存在。您可以使用处理程序函数,该函数可以在e
对象执行时对其进行访问,以将其存储在某个全局变量中并对其进行处理。
[1]并不完全正确,但是更容易理解。说的更正确的话是“将事件侦听器添加到您知道将使事件流过的元素中”。
以上是 参数e(事件)到底是什么?为什么将其传递给JavaScript函数? 的全部内容, 来源链接: utcz.com/qa/413678.html