Javascript高级技术(DOM详解第二弹)

Javascript高级技术

注册事件的几种方式
方式注意事项
element.onclick = function(){ console.log(“注册事件”) } --传统方式有唯一性
element.addEventListener(‘click’,function(){ console.log(“注册事件”) })不唯一,可添加多个监听器
element.attachEvent(‘onclick’,function(){ console.log(“注册事件”) })

addEventListener事件类型需要添加引号,并且参数不需要加on,并且有兼容性问题(IE9以上)

attachEvent事件是IE9以下的版本适用的,参数需要加on

onclick 、attachEvent只能得到冒泡阶段

addEventListener的第三个参数如果是true则处于捕获阶段,如果省略或者说是false则处于冒泡阶段

删除事件的几种方式
方式
element.onclick = function(){ console.log(“注册事件”) element.onclick = null } --传统方式
element.removeEventListener(‘click’,事件名称) -事件名称不需要加括号
element.detachEvent(‘onclick’,事件名称) -事件名称不需要加括号
DOM的事件流

在这里插入图片描述

事件对象
element.onclick = function(e){
    console.log(e) 				//打印事件对象,IE8以上
    console.log(window.event) 	//打印事件对象,IE6 7 8 
    e = e || window.event		//兼容性问题处理
}

事件对象的属性和方法

操作详情
e.target返回触发事件的对象,兼容性:e.srcElement
e.currentTarget - this返回绑定事件的对象,兼容性(IE 6 7 8 不认识)
e.type返回事件的类型,没有on
e.preventDefault()阻止默认事件的发生
e.returnValue阻止默认事件的发生,IE6 7 8
return false阻止默认事件的发生,后边代码不执行
e.stopPropagation()阻止事件的冒泡 标准
window.event.canceBubble = true阻止事件的冒泡 非标准IE6 7 8
事件委托

事件委托的原理:给元素的父节点绑定一个事件,从而代替给每一个子元素绑定事件(子元素不得阻止冒泡)

禁止选中和右键
// contextmenu 禁止右键出现菜单
document.addEventListener("contextmenu",function(e){
    e.preventDefault()
})

// selectstart 禁止选中文字
document.addEventListener("selectstart",function(e){
    e.preventDefault()
})
鼠标事件对象mouseEvent
方法详情
e.clientX获取鼠标在可视区域的X坐标
e.clientY获取鼠标在可视区域的Y坐标
e.pageX获取鼠标在整个页面区域的X坐标
e.pageY获取鼠标在整个页面区域的Y坐标
e.screenX鼠标在电脑屏幕的X坐标
e.screenY鼠标在电脑屏幕的Y坐标
// 鼠标事件的方法->获取鼠标在可视区域的X坐标
document.addEventListener("click",function(e){
    console.log(e.clientX)
})
常用的键盘事件
键盘事件触发条件
onkeyup键盘弹起出发
onkeydown键盘按下出发能识别功能键
onkeypress键盘按下出发不能识别功能键

onkeydown、onkeypress同时出发,先执行down

onkeyup、onkeydown不会区别键盘字母的大小写,如需要获取严格的大小写可以使用onkeypress

键盘事件对象keyboradEvent
方法详情
e.keyCode返回按下键字幕的ASCII码值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值