var son = document.querySelector('.son');var father = document.querySelector('.father');
son.addEventListener('click',function(){alert('son');},true);
father.addEventListener('click',function(){alert('father');},true);//会先弹出father再弹出son
var son = document.querySelector('.son');var father = document.querySelector('.father');
son.addEventListener('click',function(){alert('son');});
father.addEventListener('click',function(){alert('father');},false);//会先弹出son再弹出father
3.事件对象
事件对象:记录本次事件的一些信息集合
语法:事件函数内部有一个看不见的event
event就是一个事件对象,写在侦听函数的小括号里面,当形参来看
事件对象只有有了事件才会存在,它是系统给我们自动创建的,不需要我们传递参数
事件对象是我们事件的一系列相关数据的集合,跟事件相关的,有很多属性和方法
这个事件对象我们可以自己命名,比如event、evt、e
事件对象也有兼容性问题,ie678通过window.event
3.1事件对象常见属性和方法
==e.target ==,返回触发事件的元素(对象),点哪个返回哪个
e.type,返回事件类型
e.preventDefault(),阻止默认事件(行为),比如点击链接不跳转
e.stopPropagation(),阻止冒泡,点击谁只触发谁的事件
3.2事件委托
原理:事件冒泡
给父节点添加侦听器,利用冒泡影响每一个子节点,让每一个子节点都绑定父节点的事件
后来创建的新的子节点也会绑定事件
3.3常见鼠标事件
contextmenu 禁止鼠标右键菜单
selectstart 禁止选中文字
mouseover、mouseout 鼠标经过和离开,经过自身和盒子都会触发
mouseenter、mouseleave 鼠标经过和离开,只有经过自身才会触发
mousedown、mouseup 鼠标点击和松开
mouseEvent 鼠标事件对象
clientX/Y, 鼠标在可视区的X和Y坐标
pageX/Y, 鼠标在页面文档的X和Y坐标
screenX/Y, 鼠标在电脑屏幕的X和Y坐标
跟随鼠标的图片代码
var pic = document.querySelector('img');
document.addEventListener('mousemove',function(e){//1、mousemove,只要我们鼠标移动,就会触发这个事件var x = e.pageX;var y = e.pageY;
pic.style.left = x -50+'px';
pic.style.top = y -40+'px';})