事件

  1. 绑定事件处理函数

ele.onxxx=function(){}
兼容性好,一个元素的同一个事件上只能绑定一个处理程序,基本等同于写在html行间
程序this指向dom元素本身
解除事件处理程序:
ele.οnclick=false/’’/null

obj.addEventListener(type,fn,false);
IE9以下不兼容,可以为一个事件绑定多个处理程序,重复函数绑定多次执行一次
程序this指向dom元素本身
解除事件处理程序:
ele.removeEventListener(type,fn,false);

obj.attachEvent(‘on’+type,fn);
IE独有。一个事件可以绑定多个处理程序,重复函数绑定多次执行多次
程序this指向window,解决办法
在这里插入图片描述
解除事件处理程序:
ele.datachEvent(‘on’+type,fn)

注:若绑定匿名函数则无法解除事件处理程序

  1. 事件处理模型

冒泡:结构上嵌套关系的元素,自子元素冒泡向父元素。
捕获:自父元素冒泡向子元素,触发捕获(false➡true)
IE没有捕获事件,先捕获,后冒泡,事件执行本身不受影响
focus,blur,change,submit,reset,select不存在冒泡事件

  1. 阻止事件冒泡

event.stopPropagation();
w3c标准,但是不支持ie9以下版本

event.cancleBubble=true;
ie独有

  1. 取消默认事件

句柄式绑定时:return false;
w3c标准:event.preventDefault();
兼容ie:event.returnValue=false;
行间写:viod(false);

  1. 事件对象

兼容ie :event=e||window.event

  1. 时间源对象

兼容ie和火狐 :target=event.target||event.srcElement;

  1. 事件委托

优点:性能好,灵活;

  1. 鼠标事件

(只监听左键)click=mousedown(可以监听右键)+mouseup(可以监听右键)
mouseenter(mouseover)鼠标移入,mouseleave(mouseout)鼠标移出
document.mousedown 可以解决鼠标频次太快的问题
mousemove 监听移动
移动端:touchstart touchmove touchend

ie上的事件捕获:div.setCapture
解除捕获:div.releaseCapture

event.button:0/1/2可以判断鼠标左右键

  1. 键盘类事件

onkeypress!=onkeydown+onkeyup
keypress:监听字符类事件,区分大小写,返回ASCII码。charcode
keydown:所有键盘类事件,字符类监控不准确,不区分大小写,监听控制类事件,which对应键盘每一个按键。

  1. 文本类操作事件

input:内容变化会触发事件
change:聚焦和失去焦点内容变化触发
onfocus:聚焦时事件
onblur:失去焦点时事件

  1. 窗体操作类事件

scroll:滚动条滚动触发
获取滚动条当前位置
在这里插入图片描述
利用这个可以再ie中实现fixed定位。

load:window.onload,等待render渲染完成再加载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值