我只想了解.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