84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
很基础的一个问题 也欢迎大家补充注意点,比如循环中的闭包循环变量 什么样的情况下可能造成内存泄漏 在注册事件的时候,我们有时候会传入参数,例如
document.addEventListener('click',function(ev){ console.log(ev.pageX); })
请问这个参数是指事件发生时的上下文吗? 是不是要用到事件发生时上下文的时候我们就必须要传一个参数,也就是什么时候我们需要传参数?
闭关修行中......
请问这个参数是指事件发生时的上下文吗?
是的,这个参数包含了事件触发事的相关信息。比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
是不是要用到事件发生时上下文的时候我们就必须要传一个参数,也就是什么时候我们需要传参数?
一般情况下,如果你在事件处理函数中要用到事件对象的话(例如:需要阻止冒泡ev.stopPropagation),就会传一个参数。当然了,如果你没有传参,实际上 js 会默认事件对象作为第一个参数,你可以在事件处理函数内部通过argument[0]访问该事件对象。
ev.stopPropagation
argument[0]
可传,可不传, 有需要的时候传
要知道是个什么东西 console.log(ev)一下啥都看出来了
包括很多东西吧,比如发生事件的节点,发生事件的位置,发生事件的类型等
domElement.addEventListener(type, handler) hanlder的形式可以是 handler(event)
工作原理: 触发事件后,系统生成event参数; 系统在DomElement的上下文环境中, 传入生成的event参数,调用handler; handler.call(domElement, event);
所以event并不是执行的上下文环境,而只是系统生成的事件参数;
是的,这个参数包含了事件触发事的相关信息。比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
一般情况下,如果你在事件处理函数中要用到事件对象的话(例如:需要阻止冒泡
ev.stopPropagation
),就会传一个参数。当然了,如果你没有传参,实际上 js 会默认事件对象作为第一个参数,你可以在事件处理函数内部通过argument[0]
访问该事件对象。可传,可不传, 有需要的时候传
要知道是个什么东西 console.log(ev)一下啥都看出来了
包括很多东西吧,比如发生事件的节点,发生事件的位置,发生事件的类型等
domElement.addEventListener(type, handler)
hanlder的形式可以是 handler(event)
工作原理:
触发事件后,系统生成event参数;
系统在DomElement的上下文环境中, 传入生成的event参数,调用handler;
handler.call(domElement, event);
所以event并不是执行的上下文环境,而只是系统生成的事件参数;