javascript - 在 JavaScript 函数中提供事件参数的一般方法

标签 javascript events arguments

我多年来一直以大致相同的方式声明事件参数:

 element.onclick = function(e){};
 element.onclick = function(event){};

 element.addEventListener("click", function(e){}, false);
 element.addEventListener("click", eventHandler, false); //preferred version

 function eventHandler(e){} 

 etc.
  • 必须是eevent
  • 它是作为最后一个参数附加还是也可以作为第一个参数?

你能做到吗:

 function eventHandler(e, a, b, c, d){}

e 仍然指的是该事件还是 d

或者要使上述工作生效,您需要显式使用关键字event

所以一般问题是:在 JavaScript 函数中声明事件参数时的经验规则是什么?

最佳答案

下面我假设您指的是 DOM 事件处理程序。

Does it have to be e or event.

没关系。我们所关心的可能是ajdlahksjd

Is it appended as the last argument or can it also be the first?

事件对象将始终作为第一个参数传递给处理程序。

Can you do this:

 function eventHandler(e, a, b, c, d){}

Is e still referring to the event or is it d?

这取决于您如何绑定(bind)事件处理程序。如果您只是分配它,它将是e。如果您已经将其他值绑定(bind)到参数,例如通过 .bind,它将是第一个未绑定(bind)的参数。然而,这实际上与事件处理程序没有任何关系。事件处理程序本身也将获取事件对象作为第一个参数。

Or to make the above work you need to explicitly use the keyword event?

event 不是关键字。您可以随意命名参数。

What are the rules of thumb when it comes to declaring the event argument within a function in JavaScript?

没有。没有对事件处理程序进行神奇的静态检查。它只是一个接受参数的函数,仅此而已。

但是,肯定有一个约定来命名参数eevent,仅仅是因为它对于代表一个变量的合理名称事件对象。

关于javascript - 在 JavaScript 函数中提供事件参数的一般方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27850756/

相关文章:

javascript - 从外部 div 滚动 div

events - 重复关键事件阻塞

javascript - Firebase child_added 仅适用于新项目

c++ - 在没有源代码的情况下确定 exe 接受的参数?

c++ - Qt 连接具有不同参数的信号

Javascript 在本地工作,但上传到服务器时出现错误

javascript - 检查多个值并显示错误

excel - 有没有办法以编程方式清除 EXCEL VBA 事件队列?

c++ - 有没有办法检查发送到变量的值是否是正确的类型,而它已经在该变量下?

javascript - 如何阻止物体跳过某个点?