二阶段 core-day08

85 阅读1分钟

事件:

1、事件周期:3个

	1、捕获阶段:由外向内,记录着要发生的事件有哪些
	2、目标元素优先触发:目标元素->实际点击的那个元素
	3、冒泡阶段:由内向外,依次触发之前记录着的事件

2、获取到事件对象event

	主流:事件函数内写一个形参,就会自动得到了
	老IE:event;
	兼容:event;

	可以干什么?
		1、获取鼠标的位置
			相对于屏幕:e.screenX/Y
			相对于文档显示区域:e.clientX/Y
			相对于页面:e.pageX/Y

		2、阻止冒泡:
			主流:e.stopPropagation();
			老IE:e.cancelBubble=true;
			兼容:e.cancelBubble=true;

		3、事件委托:利用冒泡
			优化:绑定的事件越多,网站的性能越差
			为什么:因为每绑定一个事件,相当于就创建了一个事件对象
			把事件绑定在父元素身上:主要学会找到目标元素
			主流:e.target;
			老IE:e.srcElement;
			兼容:e.srcElement;
			事件内可以淘汰了this,但是淘汰不完
			搭配上判断标签名:xx.nodeName; - 得到全大写的标签名

		4、阻止浏览器的默认行为
			主流:e.preventDefault();
			老IE:e.returnValue=false;

			新事件:
				1、右键事件 - oncontextmenu
				2、键码事件 - onkeydown/press/up

		5、获取键盘键码:e.keyCode;