我只想了解.click()方法中的参数如何工作。根据我的理解,.click()方法将函数作为参数。是否将参数传递给.click()方法参数始终是Event对象?
按照jQuery的API,。点击()可以带两个参数:
([eventData], event handler)
,并且随后事件处理函数可以把这个参数:
(Event eventObject)
这是否意味着功能.click()方法的参数总是希望将“Event对象”传递给它?
就像下面的例子,我创建了一个随机对象,然后将它作为参数传递。 .click()方法的函数参数似乎忽略它是一个随机对象,并继续将其用作“事件对象”。
var anObject = {
"property1" : "someproperty"
};
$(document).click(function(anObject) {
var x = anObject.pageX;
var y = anObject.pageY;
logClicks(x, y);
});
var logClicks = function(x, y) {
console.log("x: " + x + " y: " + y)
}
问题是,引擎盖下发生了什么?为什么会这样?
编辑:
我不那么困惑的[eventData]
参数以及如何事件处理程序使用它。更多关于它的函数参数类型如何将您传递给它的任何参数转换为保存Event对象的变量。
你的意思是匿名函数没有访问anObject对象? – catandmouse
它有权限访问。但是由于它们具有相同的名称,它会使用您通过的那个名称在本地覆盖它 – FredMaggiowski
@catandmouse我将添加:使用您传递的实际上由jQuery传递并且是“Event”的那个) – FredMaggiowski