事件Event

事件Event

1.事件基础

JavaScript 事件是由访问Web页面的用户引起的一系列操作。
当用户执行某些操作的时候,再去执行一系列代码。或者用来获取事件的详细信息,如鼠标位置、键盘按键等。

2.事件处理函数

javaScript可以处理的事件类型为:鼠标事件键盘事件HTML事件
所有的事件处理函数都会都有两个部分组成,on+事件名称
HTML DOM 事件
DOM: 指明使用的 DOM 属性级别。

【注】下面给大家列一下常用的鼠标事件

属性描述
onclick当用户点击某个对象时调用的事件句柄
oncontextmenu在用户点击鼠标右键打开上下文菜单时触发
ondblclick当用户双击某个对象时调用的事件句柄
onmousedown鼠标按钮被按下
onmouseenter当鼠标指针移动到元素上时触发
onmouseleave当鼠标指针移出元素时触发
onmousemove鼠标被移动
onmouseover鼠标移到某元素之上
onmouseout鼠标从某元素移开
onmouseup鼠标按键被松开

使用方式
例:onclick点击事件
在这里插入图片描述
【补】closeSpan是需要绑定事件的元素,函数里是需要执行的代码体。

【注】常用的键盘事件

属性描述
onkeydown某个键盘按键被按下
onkeypress某个键盘按键被按下并松开
onkeyup某个键盘按键被松开

使用方式和鼠标事件一样

【补】另外补充一写常用的事件

属性描述
onload一张页面或一幅图像完成加载
onscroll当文档被滚动时发生的事件
onblur元素失去焦点时触发
onchange该事件在表单元素的内容改变时触发
onfocus元素获取焦点时触发
onreset表单重置时触发
onsubmit表单提交时触发

暂时就给大家补充那么多,欢迎扩充!!!!

3.事件对象

分享我所碰到的几个对象,不够详细还请谅解!!
addEventListener() 允许在目标事件中注册监听事件(IE8 = attachEvent())
dispatchEvent() 允许发送事件到监听器上 (IE8 = fireEvent())
removeEventListener() 运行一次注册在事件目标上的监听事件(IE8 = detachEvent())
clientX 返回当事件被触发时,鼠标指针的水平坐标。
clientY 返回当事件被触发时,鼠标指针的垂直坐标。
pageX 返回当事件被触发时,鼠标指针的水平坐标,对于整个页面来说,包括滚动条卷去的长度
pageY 返回当事件被触发时,鼠标指针的水平坐标,对于整个页面来说,包括滚动条卷去的长度
screenX 返回当某个事件被触发时,鼠标指针的水平坐标。
screenY 返回当某个事件被触发时,鼠标指针的垂直坐标。

事件流:描述的是页面接收事件的顺序
事件流的三个阶段:捕获 目标 冒泡

当子盒子在父盒子上时,点击子盒子会向上冒泡,父盒子也会随之反应。例:

<div style="width:400px; height:400px; background:red" onclick="alert(this.style.background)">
            <div id="div2" >
                    <div onclick="alert(this.style.background)">
                            <div id="div1" >
                                <a id="aaa" href="http://www.baidu.com">aaa</a> 
                            </div>
                    </div>
            </div>
    </div>

所以我们这时候就需要阻止冒泡了,在这里跟大家分享两种阻止冒泡的方法。
阻止冒泡
event.cancelBubble = true;//阻止事件冒泡。适用于现在浏览器和ie
event.stopPropagation();

4.事件默认行为及阻止方式

浏览器的默认行为
JavaScript事件本身所具有的属性,例如a标签的跳转, Submit按钮的提交,右键菜单,文本框的输入等。
阻止默认行为的方式
event.preventDefault; event.returnValue = false; return false;

5.DOM2级事件处理程序

添加事件监听器: addEventListener(事件名,处理函数,布尔值)
移除事件监听器: removeEventListener(事件名,处理函数)
IE下的事件监听器: attachEvent(事件名,处理函数)//添加
detachEvent(事件名,处理函数)//移除

function addEvent (obj, type , fun){
	if(obj . addEventListener){
		obj . addEventL istener(type, fun, false);
	}else{
		obj. attachEvent("on"+type, fun); 
	}
}
function removeEvent(obj ,type , fun){
	if(obj . removeEventListener){
		obj . removeEventL istener(type, fun,false);
	}else{
		obj. detachEvent("on"+type, fun); 
	}
}

6.事件委托机制

利用事件冒泡原理,把本应该添加给某元素的事件委托给她的父级(外层)

 //事件委托
oUl.onclick = function(e){
	//console.log("aa");
	var evt = e | | event;
	var_ target = evt. target | | evt. srcE lement;
	if(_ target. nodeName . toUpperCase() ==“LI"){
		console. log(L target. innerHTML)
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值