慕容3067478
当你使用addEventListener的时候,回调函数应该加上形参,不管是e或者是event,只要符合变量命名规则就可以了就像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); // 已做过兼容处理});函数的参数e(或者event)会由浏览器帮我们传入而这个参数e对象的内容,如果是标准事件(非自定义事件)的话,则由浏览器自身来决定,而当使用jquery的时候,实际上jquery已经帮我们把传入回调的数据做了兼容性的处理以保证在各个浏览器都可以保持一致行为而你的疑问应该是window.event和事件处理回调里的参数event的区别吧?$("#buttonId").on("click", function (e) { console.log(e); // 已做过兼容处理
console.log(event); // window.event});
button.addEventListener("click",function (event){ console.log(event === window.event); //chrome下输出为true});在chrome下这个window.event实际和addEventListener(eventType, function(event){})中的event是一样的.旧版本的ie也有window.event,但是旧版本ie并不支持addEventListener,而firefox并没有这个值,基本上也不建议使用这个值就是了