什么使参数成为事件对象?

时间:2011-07-18 15:06:04

标签: javascript

this question中所述,在函数中

function(e){
    e.stopPropogation();
}

e是事件对象。但为什么?假设第一个也是唯一一个参数是事件吗?如果有两个参数怎么办?我如何让第二个参考事件呢?或者就像说

一样简单
function(something,x){
    x.stopPropogation();
}

因为我认为x将是未定义的,并且不会因为调用事件方法而自动成为事件对象。

2 个答案:

答案 0 :(得分:3)

对于DOM事件,第一个参数(,通常只有一个)是事件对象。

对于框架,它取决于实现,但为了保持一致性,它们通常也会在第一个参数中传递事件。

你认为x将是未定义的是正确的。

查看https://developer.mozilla.org/en/DOM/event

答案 1 :(得分:1)

您提到的问题是关于jQuery事件处理程序的。事件对象是处理程序的第一个参数,因为这就是函数的调用方式。没有什么能迫使它成为事件对象。

您通常无法控制如何调用事件处理程序,尽管某些框架将允许您在绑定处理程序时传递其他参数(这意味着每个事件发生时将传递相同的值)或当时事件是以编程方式触发的。