如this question中所述,在函数中
function(e){
e.stopPropogation();
}
e
是事件对象。但为什么?假设第一个也是唯一一个参数是事件吗?如果有两个参数怎么办?我如何让第二个参考事件呢?或者就像说
function(something,x){
x.stopPropogation();
}
因为我认为x
将是未定义的,并且不会因为调用事件方法而自动成为事件对象。
答案 0 :(得分:3)
对于DOM事件,第一个参数(,通常只有一个)是事件对象。
对于框架,它取决于实现,但为了保持一致性,它们通常也会在第一个参数中传递事件。
你认为x
将是未定义的是正确的。
答案 1 :(得分:1)
您提到的问题是关于jQuery事件处理程序的。事件对象是处理程序的第一个参数,因为这就是函数的调用方式。没有什么能迫使它成为事件对象。
您通常无法控制如何调用事件处理程序,尽管某些框架将允许您在绑定处理程序时传递其他参数(这意味着每个事件发生时将传递相同的值)或当时事件是以编程方式触发的。