1 回答

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
當(dāng)你使用addEventListener
的時(shí)候,回調(diào)函數(shù)應(yīng)該加上形參,不管是e
或者是event
,只要符合變量命名規(guī)則就可以了
就像
var button = document.getElementsById("buttonId")[0]; button.addEventListener("click",function (e){ console.log(e); });// button.addEventListener("click",function (event){// console.log(event); //也是可行的// });$("#buttonId").on("click", function (e) { console.log(e); // 已做過(guò)兼容處理});
函數(shù)的參數(shù)e
(或者event
)會(huì)由瀏覽器幫我們傳入
而這個(gè)參數(shù)e
對(duì)象的內(nèi)容,如果是標(biāo)準(zhǔn)事件
(非自定義事件)的話,則由瀏覽器自身來(lái)決定,而當(dāng)使用jquery的時(shí)候,實(shí)際上jquery已經(jīng)幫我們把傳入回調(diào)的數(shù)據(jù)做了兼容性的處理以保證在各個(gè)瀏覽器都可以保持一致行為
而你的疑問(wèn)應(yīng)該是window.event
和事件處理回調(diào)里的參數(shù)event
的區(qū)別吧?
$("#buttonId").on("click", function (e) { console.log(e); // 已做過(guò)兼容處理 console.log(event); // window.event}); button.addEventListener("click",function (event){ console.log(event === window.event); //chrome下輸出為true});
在chrome下這個(gè)window.event
實(shí)際和addEventListener(eventType, function(event){})
中的event
是一樣的.舊版本的ie也有window.event
,但是舊版本ie并不支持addEventListener
,而firefox并沒(méi)有這個(gè)值,基本上也不建議使用這個(gè)值就是了
添加回答
舉報(bào)