gpt4 book ai didi

javascript - 参数 e(事件)到底是什么,为什么要将它传递给 JavaScript 函数?

转载 作者:IT王子 更新时间:2023-10-29 03:20:12 25 4
gpt4 key购买 nike

嗯,当我学习 JavaScript 时,我阅读的所有书籍和互联网文章都显示代码将参数 e 传递给处理 JavaScript 事件的函数,例如下面的代码块:

function myEvent(e) {
var evtType = e.type
alert(evtType)
// displays click, or whatever the event type was
}

我一直接受它是这样的,但现在我有一些问题(这让我很困惑):

  1. 这个 e 来自哪里?当我查看整个 JavaScript 文件时,e 似乎根本不存在。
  2. 为什么要将此参数 e 传递给函数?如果我不将 e 传递给函数,函数会停止工作吗?
  3. 考虑下面的代码块。有一个事件变量 (e) 传递给匿名内部函数。假设我想在匿名函数之外使用一个事件对象(可能在 element.onkeypress 行上方/下方的一行中)。我该怎么做?

    element.onkeypress = function(e) {
    if(e.keyCode) {
    element.keyCode = e.keyCode;
    } else {
    element.keyCode = e.charCode;
    }
    };

最佳答案

eevent的缩写

创建事件的最简单方法是点击页面上的某处。

当您单击时,将触发一个click 事件。此 event 实际上是一个对象,其中包含有关刚刚发生的操作的信息。在此示例中,事件将包含点击坐标(例如 event.screenX)、您点击的元素(event.target)等信息,还有更多。

现在,事件一直在发生,但是您对发生的所有事件都不感兴趣。然而,当您对某个事件感兴趣时,就是在您将事件监听器添加到您知道将创建事件的元素时[1]。例如,您有兴趣了解用户何时点击“订阅”按钮,并且您希望在此事件发生时做某事

为了对此事件做一些事情,您将事件处理程序绑定(bind)到您感兴趣的按钮。将处理程序绑定(bind)到元素的方法是执行element.addEventListener( eventName, handler).

eventName 是一个字符串,它是您感兴趣的事件的名称,在本例中为 'click'(对于“click”事件) .

处理程序只是一个函数,它在事件发生时执行某些操作(已执行)。默认情况下,处理程序函数在执行时传递事件对象(当您感兴趣的事件/ Action 发生时创建)作为参数.

event 定义为处理函数的参数是可选的,但有时(大多数时候),处理函数了解发生的事件很有用。当你定义它时,这就是你在你提到的函数中看到的e。请记住,event 只是一个普通的 javascript 对象,上面有很多属性。

希望对您有所帮助。

有关更多信息,请阅读 Creating and Triggering Events

关于你的第三个问题,现在你应该知道你不能那样做,因为 e 只有在事件发生时才存在。您可以让处理函数(它在执行时可以访问 e 对象)将其存储在某个全局变量中并对其进行处理。

[1] 这并不完全正确,但更容易理解。更正确的说法是“将事件监听器添加到您知道将有事件流过的元素”。参见 this了解更多信息

关于javascript - 参数 e(事件)到底是什么,为什么要将它传递给 JavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35936365/

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