复习
面向对象
1.单例模式
2.工厂模式
3.构造模式
1.事件
什么是事件:浏览器客户端上客户触发发行为都称为事件
所有的事件都是天生自带的,不需要我们去绑定,只需要我们去触发
通过obj.事件名=function(){}
事件名:onmouseover·onmouseout·onmousedown·onmousemove·onmouseup·onclick·onchange onfocus·onblur等等
鼠标的坐标 :event.clientX event.clientY
2.事件冒泡
什么是事件冒泡:给父子元素的同一事件绑定方法时,触发了子元素身上的事件,执行完毕后也会触发父同事件,这种传播机制叫事件冒泡
取消事件冒泡
event对象有个属性叫cancelBubble默认值是false,改成true就取消当前事件冒泡
3.事件捕获
给一个元素绑定事件,普通写法是
obj.onclick=function(){} 相当于给obj的onclick属性赋值是一个道理
缺点:后者会将前者覆盖掉
第二种写法
标准浏览器: addEventListener()这个方法
IE低版本用attachEvent()这个方法
addEventListener(参数1,参数2,参数3)
参数1——事件名,事件名不能带on
参数2——事件函数
参数3——布尔值,代表捕获不捕获,默认值是false,不捕获但是冒泡
(1)ie低版本没有捕获
(2)普通事件绑定写法没有捕获
attachEvent()和addEventListener()二者区别
1.attachEvent只用在iE8以下,addEventListener()适合标准浏览
2.attachEvent的事件名带on 而addEventListener事件名不带on
3.attachEvent函数里面的this是window,而addEventListener函数里面的this是当前元素