事件处理函数和事件源
事件源 谁触发这个事件谁就是事件源
this 给谁绑定事件 谁就是this
对象:1 内置对象 Date String Array Math Boolean Number Regexp Global
2 DOM对象
3 自定义对象
var obj={
name:"zs";
age:18} \\此处dom为自定义对象
绑定两次点击事件
addEventListener(添加事件监听 给同一个元素添加多个相同的事件监听)
(三个参数 第一个参数 事件类型 第二个参数 事件处理函数 function 第三个参数 布尔类型 如果是 false表示事件冒泡 如果是true 事件捕获)
onclick (事件绑定相同事件会覆盖)
oWrapper.addEventListener("click",function( console.log(1)){
},false)
oWrapper.addEventListener("click",function( console.log(2)){
},false)
\\添加点击事件的事件监听
事件流 (事件处理流向)
false 事件冒泡 执行顺序 从内向外执行
true 事件捕获 执行顺序 从外向内执行
对同一个元素 同时进行捕获和冒泡 先执行事件捕获 再执行事件冒泡
阻止事件冒泡 e.stopPropagation();
阻止浏览器的默认行为 1 e.preventDefault();
2 return false
类数组属性 只有length属性 没有数组下自带的方法
动态生成的元素不能直接绑定事件 如果需要给动态生成的元素绑定事件 需要绑定给一个已存在的父元素上(事件的委托)
事件委托的原理是事件冒泡
页面加载后执行for循环 给已有的元素绑定事件
但是 事件需要人为触发 后生成的元素并没有绑定过事件
动态生成的元素不能直接绑定事件