| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> JS day11—事件 -> 正文阅读 |
|
[JavaScript知识库]JS day11—事件 |
1.事件:对某个元素的某种操作 事件三要素:事件元素,事件类型,事件对象(可有可无) 事件对象:当某个事件触发时产生的对象,就是事件对象。 event使用前提,必须有事件。不同的对象产生的事件不同。 事件对象的兼容写法: var e = evt || event 宏观事件分为鼠标事件和键盘事件。 2.鼠标事件对象的属性:坐标属性: pageX / pageY? 相对于整个文档(整个页面)顶部和左侧的坐标 clientX / clientY? 相对于局部窗口(窗口)的左侧和顶部的坐标 offsetX /offsetY? 相对于内部元素的距离(离自己最近的父元素)左侧和顶部的坐标 常用于拖拽 3.键盘事件对象:键盘事件对象的事件源是documnt onkeyUp: 用户释放某一个按键时触发该事件 onkeyDown: 用户按下按键时触发该事件 onkeyPress: 用户按下按键,并且产生一个字符时才会触发该事件 ctrl+回车=10(返回值为10) 事件对象相关属性:keyCode: 获取键盘按键值? ?字母 对应其ASCII值识别? ctrlKey:判断ctrl键是否被按下--------是则true,不是则false 键盘检测兼容写方法: var key = e.keyCode || e.which || e.charCode; 4.事件流:事件流:当某个事件执行时,从子元素向父元素触发 或 从父元素向子元素触发? 事件流的两种模式:? ?冒泡:子向父触发---------当某个事件触发时,同样的事件会向父元素触发。 *******并不是所有的事件都产生冒泡: onfocus(聚焦)onblur(失焦)onload(延迟加载)不会产生冒泡。 ? ?捕获:从父元素向子元素触发--------当某个事件触发时,同样的事件会向子元素触发。 阻止事件流冒泡:事件对象.stopPropagation();--------对事件的触发源添加该方法 兼容写法: e.stopPropagation ? e.stopPropagation():e.cancelBubble = true; 5.阻止浏览器的默认事件:兼容写法: e.preventDefault?e.preventDefault():e.returnValue = false; 或: return false; 右键的事件:oncontextmenu onmouseover:鼠标指针移动到事件对象时执行事件-----只在刚进入区域时触发 onmousemove:和onmouseover差不多,但是鼠标在区域内移动鼠标,也会触发事件 onmousedown:鼠标按钮按下事件对象时触发事件 onmouseout:鼠标移出事件对象触发该事件 6.事件绑定的方式:1.通过html元素绑定事件2.通过js对象绑定事件前两个事件绑定的缺陷: 1.无法决定事件流传递是冒泡还是捕获 2.无法为相同的元素多次绑定相同的事件 ****3.事件监听-------本质也是事件绑定该方法的好处: 1.可以为同样的元素绑定多次同一个事件 2.可以决定事件流的传递是冒泡还是捕获 使用方法: DOM对象.addEventlistener(去掉on的事件名,回调函数,[事件捕获还是冒泡]------false,不写则为冒泡。true为捕获) 当相同元素绑定相同事件时:当捕获与冒泡同时存在时,先捕获在冒泡 7.取消事件的绑定效果:非ie的浏览器 document.οnclick=null; 监听取消: document.removeEventListener(去掉on的事件名,回调函数-----此函数与监听的函数一样) 注意事项: ?两个方法的回调函数必须是同一个函数对象才可以取消 8.事件委托:-----依赖与冒泡机制事件委托:某个元素的事件触发后,让别的元素的回调函数去执行 此方法的好处: 1.将大量子元素的事件绑定至其父元素,从而提高程序执行的效率 2.可以对父元素所有子元素添加事件效果,即使这个子元素是未来创建的
9.JSON的扩充1.json转字符串JSON.stringify();
2.字符串转jsonJSON.parse();
|
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 20:45:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |