我多年来一直以大致相同的方式声明事件参数:
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.
- 必须是
e
或event
。 - 它是作为最后一个参数附加还是也可以作为第一个参数?
你能做到吗:
function eventHandler(e, a, b, c, d){}
e
仍然指的是该事件还是 d
?
或者要使上述工作生效,您需要显式使用关键字event
?
所以一般问题是:在 JavaScript 函数中声明事件参数时的经验规则是什么?
最佳答案
下面我假设您指的是 DOM 事件处理程序。
Does it have to be
e
orevent
.
没关系。我们所关心的可能是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 itd
?
这取决于您如何绑定(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?
没有。没有对事件处理程序进行神奇的静态检查。它只是一个接受参数的函数,仅此而已。
但是,肯定有一个约定来命名参数e
或event
,仅仅是因为它对于代表一个变量的合理名称事件对象。
关于javascript - 在 JavaScript 函数中提供事件参数的一般方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27850756/