一、
1.如果body里面什么都不放,则给body加点击事件,发现并不能alert相应的东西。因为在body里面不放东西的时候body是根本没有被撑起来的,当我放了一个按钮进去,则body就被撑了起来,只有按钮那么高。点击除了按钮那一块之外的地方也是不行的。但是如果给document加点击事件就是可以的。
2.document的第一个子节点才是html。第0 个子节点视频里面讲的是!<!DOCTYPE html>但是我自己试验是undefined
<document>就像一个隐藏的节点,他包括了<!DOCTYPE html> 和<html>甚至包含了文档头的说明。
3.如果要给整个页面加事件,就要给document加,因为给body加可能撑不开。
二、事件对象
event.clientX event.clientY 在火狐下根本不认,根本没有反应。控制台报错,event没有定义。
在低版本的chrome下也不认。所以这个一般就是认为是ie下的写法。
在火狐下,要传个参数,这个参数是系统传的。
解决方法是 document.onclick = function(ev){
var oEvent = ev||event;
alert(oEvent.clientX+',');};这个地方如果ev和event的顺序换一下就会在火狐下就会报event undefined的错误。同样的道理在用if来解决兼容性的问题的时候也是这样,必须把ev放在前面。
三、事件流
1.事件冒泡
点击最里面的div他会一级一级的往上传,到body再到html最后到document。
事件冒泡在一些情况下会带来一些麻烦。比如下面的例子中,就是用了一个事件的cancelBubble来阻止事件冒泡。