目录
一、事件处理
1、注册事件
(1)传统方式注册
(2)事件监听方式
2、删除事件
(1)传统方式
(2)标准方式
3、DOM事件流
二、事件对象
1、事件对象
2、 事件对象的常见属性和方法
(1)对比e.target和this的区别
(2)阻止默认行为
(3)阻止事件冒泡
(4)事件委托
三、鼠标事件
1、鼠标事件的常用方法
(1)鼠标事件常用方法
(3)禁止鼠标选中:selectstart
2、鼠标事件对象
3、案例(图片随着鼠标移动)
四、键盘事件
1、键盘事件的常用方法
2、键盘事件对象
案例:
一、事件处理
事件:用户进行的某种 *** 作
事件源:触发事件的对象
事件处理程序(函数):当事件被触发后所执行的 *** 作(代码)
1、注册事件事件的户注册:让浏览器对象能够识别事件
(1)传统方式注册元素对象.事件名 = function(){
事件处理程序;
}
特点: 事件处理具有唯一性,同一个元素同一个事件只能注册一个处理函数,后面注册的函数会将前面注册的覆盖掉。
(2)事件监听方式可以给同一个DOM对象同时注册多个事件处理程序(函数)
DOM对象.addEventListener(type,callback,[capture]);
type: 表示事件类型(若click、change、mouseover等)
callback:事件处理程序(函数)
capture:可选参数,默认值为false,表示在事件冒泡阶段进行处理 true,表示在事件捕获阶段处理
2、删除事件 (1)传统方式DOM对象.事件名 = null;
(2)标准方式
DOM对象.removeEventListener(type,callback);
3、DOM事件流
定义:是指当事件发生时,会在发生事件的元素节点与DOM树根节点之间按照特定的顺序进行传播,这个过程称之为事件流。
(1)捕获方式:网景公司
(2)冒泡方式:微软公司
(3)先捕获后冒泡:W3C
二、事件对象 1、事件对象事件对象(event):是一个对象,封装了跟事件有关的所有数据。只有在事件发生时才存在,由系统自动创建。是事件处理程序(函数)
注意:因为在事件触发时就会产生事件对象,并且系统会以实参的形式传给事件处理函数。所以,在事件处理函数中需要用一个形参来接收事件对象event
2、 事件对象的常见属性和方法
e.target | 返回触发事件的对象 |
e.type | 事件类型 |
e.stopPropagation() | 阻止事件冒泡 |
e.preventDefault() | 阻止默认事件 |
注意: 表中的type属性是标准浏览器和早期版本IE浏览器的事件对象的公有属性,通过该属性可以获取发生事件的类型,如click、mouseover等(不带on)。
(1)对比e.target和this的区别在事件处理中e.target返回的是触发事件的对象,而this返回的是绑定事件的对象
div.onclick = function(e) {
e = e || window.event;
var target = e.target || e.srcElement;
console.log(target);
}
(2)阻止默认行为
在实际开发中,为了使程序更加严谨,想要确定含有默认行为的标签符合要求后,才能执行默认行为时,可利用事件对象的preventDefault()方法和returnValue属性,禁止所有浏览器执行元素的默认行为。需要注意的是,只有事件对象的cancelable属性设置为true,才可以使用preventDefault()方法取消其默认行为。
百度
(3)阻止事件冒泡
可以利用事件对象调用stopPropagation()方法和设置cancelBubble属性,实现禁止所有浏览器的事件冒泡行为。
if (window.event) { // 早期版本的浏览器
window.event.cancelBubble = true;
} else { // 标准浏览器
e.stopPropagation();
}
(4)事件委托
事件委托的原理是,不给每个子节点单独设置事件监听器,而是把事件监听器设置在其父节点上,让其利用事件冒泡的原理影响到每个子节点。
简而言之,就是不给子元素注册事件,给父元素注册事件,让处理代码在父元素的事件中执行。
这样做的的优点在于,只 *** 作了一次DOM ,提高了程序的性能。
我是第 1 个li
// …此处省略多个标签
三、鼠标事件
1、鼠标事件的常用方法
(1)鼠标事件常用方法
onclick | 单击鼠标左键时触发 |
onfocus | 获得鼠标指针焦点触发 |
onblur | 失去鼠标指针焦点触发 |
onmouseover | 鼠标指针经过时触发 |
onmouseout | 鼠标指针离开时触发 |
onmousedown | 当按下任意鼠标按键时触发 |
onmouseup | 当释放任意鼠标按键时触发 |
onmousemove | 在元素内当鼠标指针移动时持续触发 |
document.addEventListener('contextmenu', function (e) {
e.preventDefault();
})
主要控制应该何时显示上下文菜单,主要应用于程序员取消默认的上下文菜单
(3)禁止鼠标选中:selectstartselectstart事件是鼠标开始选择文字时就会触发,如果禁止鼠标选中,需要禁止该事件的默认行为
document.addEventListener('selectstart', function (e) {
e.preventDefault();
})
2、鼠标事件对象
鼠标事件对象:MouseEvent
是跟鼠标事件相关的一系列信息的集合,可以用来获取当前鼠标的位置信息
clientX | 鼠标指针位于浏览器页面当前窗口可视区的水平坐标(X轴坐标) |
clientY | 鼠标指针位于浏览器页面当前窗口可视区的垂直坐标(Y轴坐标) |
pageX | 鼠标指针位于文档的水平坐标(X轴坐标),IE 6~IE 8不兼容 |
pageY | 鼠标指针位于文档的水平坐标(X轴坐标),IE 6~IE 8不兼容 |
screenX | 鼠标指针位于屏幕的水平坐标(X轴坐标) |
screenY | 鼠标指针位于屏幕的垂直坐标(Y轴坐标) |
var pageX = event.pageX || event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft)
var pageY = event.pageY || event.clientY + (document.body.scrollTop || document.documentElement.scrollTop)
3、案例(图片随着鼠标移动)
四、键盘事件
1、键盘事件的常用方法
键盘事件:是指用户在使用键盘时触发的事件
keypress | 某个键盘按键被按下时触发,不识别功能键,如Ctrl、Shift、箭头等 |
keydown | 某个键盘按键被按下时触发 |
keyup | 某个键盘按键被松开时触发 |
注意:keypress事件保存的按键值是ASCII码,keydown和keyup事件保存的按键值是虚拟键码,keydown和keypress如果按住不放的话,会重复触发该对应事件。keyup和keydown事件不区分字母大小写,而keypress区分字母大小写
2、键盘事件对象键盘事件对象:KeyBoardEvent
是跟键盘事件相关的一系列信息的集合,根据键盘事件对象中的keyCode属性可以得到相应的ASCII码值,进而可以判断用户按下了哪个键。
案例:
当按下s键时,聚焦在文本框里
搜索:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)