dom事件
用户的操作和应用程序之间的交互,事件
常见的用户操作
点击 click
滑过 mouseover mouseenter进入
滑出 mouseout mouseleave离开
按住鼠标 mousedown
释放鼠标 mouseup
移动鼠标 mousemove
按下按键 keydown
释放按键 keyup
双击鼠标 dblclick
滚轮 mousewheel
右键 click
应用程序内部操作
获取焦点
失去焦点
值改变
加载完成
卸载
取消事件绑定dom.
事件冒泡:触发事件时,事件从内向外传播,外层元素相同的事件被自动触发
event:事件对象,作为事件函数的参数
e.stopPropagation()组织事件冒泡
e.cancelBubble=true;支持IE7 8和标准浏览器
e.srcElement,触发事件的元素
src=source来源
默认行为:不需要js,自身执行的操作
a的href submit, reset file
e.preventDefault(),阻止默认行为
e.returnValue=false;IE7 8
return false;
设置html内容,导致内部元素绑定的事件都是涉及的操作
innerHTML,jq:html(),vue v-html
事件委托:
将原来绑定在元素上的事件,绑定在外层已经存在的元素上,事件触发时,判断事件源,来执行对应的操作
优点:1、避免大量绑定事件,节省资源
2、动态添加的元素具有事件
3、设置过html内容之后狗,内部元素事件不丢失
缺点:大量事件委托给同一个元素时,可能会导致事件源误判
事件捕获:触发事件时,事件从外向内执行相同的事件,通过外层addEventListener的第三个参数true实现
addEventListener第三参数默认是false,代表事件冒泡
onclick不存在事件捕获,只有事件冒泡
e:event,事件对象
e.srcElement:事件源,触发事件的dom元素
e.pageX,e.pageY:鼠标当前的水平和垂直位置,鼠标的(0,0)位置式文档左上角
e.clientX,e.clientY:鼠标的(0,0)位置式窗口左上角
document.documentElement.onmousemove=function(e){
console.log("page:"+e.pageX,e.pageY);
console.log("client:"+e.clientX,e.clientY)
}
将事件作为标签属性:
为实现结构与行为分离
只能绑定一次
在js中绑定事件
只能绑定一次事件
addEventListener
多次绑定相同事件
setTimeout(function(){},ms)
clearTimeout(计时器编号t)
setInterval
clearInter
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本