事件对象event
是一个对象,当一个事件被触发时,就会产生一个event对象,其作用为装事件发生时的各项属性。
包括 事件类型type(单机双击之类的),目标元素。target(?)还有一些有关的方法,
事件触发后,要取消的话,用preventDefault();
获取event事件对象和获取触发事件的dom对象target在IE11开始不用赋值,可以直接使用
在浏览器中如果要赋值,可以
var event = event||window.event;
var target = event.target||event.srcElement;
其中对于target,使用时会有一个问题:
当你用父级元素监听一个事件,而你点击它的子元素时,也就是说把target属性给这个字元素,可能会出现无响应的问题,原文出自:
target在事件流的目标阶段;currentTarget在事件流的捕获,目标及冒泡阶段。只有当事件流处在目标阶段的时候,两个的指向才是一样的, 而当处于捕获和冒泡阶段的时候,target指向被单击的对象而currentTarget指向当前事件活动的对象(一般为父级)。
所以,我们可以把子元素的target改成currentTarget,这样,他们指向的对象就一致了。
从这里,以及target的翻译,可以把上面的“?”理解为,具有target属性的元素,处在目标阶段,即事件触发动作的指向
可以用三个具有相同类名的li标签解释
function over1(e){ var li1 = document.querySelectorAll(".li"); for ( var i = 0 ; i < li1.length ; i++){ li1[i].style.backgroundImage =" url(images/bg1.gif) "; e.target } e.target.style.backgroundImage = "url(images/bg2.gif)"; }