web学习记录-JS-13
事件的委派
指将事件统一绑定给元素的共同祖先元素,这样后代元素上的时间触发时,会一直冒泡到祖先元素,从而通过祖先元素的响应函数来处理事件;
是利用了冒泡,通过委派可以减少事件绑定的次数,提高程序性能;
如果触发事件是我们期望的元素,则执行,否则不执行;
enent.target 触发事件返回触发事件的元素
事件的绑定
使用对象.事件 = 函数 的形式绑定响应函数;它只能同时绑定一个响应函数;
addEventListener()通过这个方法也可以为元素绑定响应函数; 不支持IE8以及以下的浏览器;
参数1,时间的字符串,不要on 2,回调函数,当时间出发时该函数会被调用 3,是否在捕获阶段触发事件,需要一个布尔值,一般都传false;
可以同时为一个元素的相同事件同时绑定多个响应函数,按照绑定的绑定顺序执行;
attachEvent()在IE8中使用来绑定多个处理事件
参数1,事件的字符串,要on; 2,回调函数;
执行顺序为从后到前;
事件的传播
1。微软,从内向外,冒泡
2。网景,从外向内,
3。W3C 捕获阶段,目标阶段,冒泡阶段 如果希望在捕获阶段执行参数,可将addEventListent()的第三个参数设置为true;
拖拽
1,当鼠标在被拖拽的元素上按下时,开始拖拽 onmousedown
2,当鼠标移动时,元素跟着移动 onmousemove
3,当鼠标松开时,被拖拽元素固定在当前位置 onmouseup
当我们拖拽浏览器中的内容时,浏览器会默认搜索该内容,如果不希望发生这行为,则return false;IE8不支持;
当调用一个元素的setCapture()方法后,这个元素将会把下一次所有的鼠标按下相关的时间捕获到自身上;IE支持
relaseCapture()施放捕获;IE支持;
鼠标的滚轮事件;
onmousewheel();火狐不支持;火狐中用DOMMouseScroll来绑定滚动事件,该事件只能通过addEventListener()函数来绑定
box1.onmousewheel = function(){}通用绑定;
bind(box1,"DOMMouseScroll",box1.onmousewheel);为火狐绑定;
event.wheelDelta可以获取滚动方向,向上正值,想下负值; 火狐不支持;
event.detail来获取,向上负值,向下正值;
当滚轮滚动时,浏览器有滚动条时,滚动条会随之滚动;return false ;来解决 火狐不支持;
event.preventDefault()来取消;火狐;IE8不支持;
键盘事件
onkeydown 按键被按下;按下不松手,事件会一直被触发;
连续触发时,第一次跟第二次间隔会长一点,其他会非常快;
为了防止误操作的放生;
onkeyup 按键被松开;
键盘事件一般都会绑定给一些可以获取到焦点的对象或者是document;
通过keyCode来获取按键的编码;可判断哪个按键被按下;
除了keyCode还提供了几个属性
altKey ctrlKey shiftKey 按下返回true,否则返回false;