事件

66 阅读2分钟

事件

绑定事件和解绑事件(禁用)

绑定

dom0 类型

box.onclick=function(){
    console.log("1111")
}

缺点:重复绑定之后会覆盖掉前面的

dom2类型

可以绑定多个事件处理函数 按照顺序执行k

box.addEventListener("click",function()
                    {
    console.log("11111111")
})
box.addEventListener("click",function()
                    {
    console.log("22222222")
})
box.addEventListener("click",function()
                     {
    console.log("3333333")
})

image-20231109164548966

解绑

点击之后赋值为空(利用dom0的覆盖)

btn.onclick=function(){
    console.log("谢谢惠顾")
    this.onclick=null
}

dom2解绑

function handler()
                     {
    console.log("谢谢惠顾")
                         this.removeEventListener("click",handler)
})
​
​
btn.addEventListener("click",handler)
​
//btn.removeEventListener("click",handler)

事件类型

鼠标事件

click点击

dbclick双击

contextmenu 右键单击

clientx clienty 距离浏览器可视窗口的左上角的坐标值

pagex pagey距离页面文档流的左上角的坐标值

offsetx offsety 距离触发元素盒子(父元素)的左上角的坐标值

btn.ondblclick=function(){
    console.log("双击执行")
}
//btn"dom节点" on关键字 dblclick事件类型document.oncontextmenu=function(){
    console.log("右键单击")
}
​

contextmenu 右键单击 应用场景自定义右键菜单

  • mousedown鼠标按下
  • mousemove鼠标移动
  • mouseup鼠标抬起

应用于点击某个盒子后盒子跟随

mouseover mouseout 移入移出(在孩子身上也会触发)

mouseenter mouseleave 移入移除(在孩子身上不会触发)

box.onmouseover=function(){
 console.log("移入")
}
box.onmouseout=function(){
 console.log("移出")
}

键盘事件

keydown键盘按下

keyup键盘抬起

username.onkeydown=function(){
    console.log("按下键盘,判断是不是回车键")
}

表单事件

focus 获取焦点

bulr失去焦点

change获取焦点和失去焦点内容改变才会触发

input内容不一样(适用于类似百度那种下拉列表不一样的)

submit提交

reset重置

username.onfocus=function(){
    console.log("按下键盘,判断是不是回车键")
}
username.onblur=function(){
    console.log("按下键盘,判断是不是回车键")
}
username.onchange=function(){
    console.log("change")
}
username.onsubmit=function(){
    console.log("submit 校验表单内容")
    return false
}
username.onrest=function(){
    console.log("reset")
}

触摸事件

适用于手机端

touchstart触摸开始

touchmove触摸移动

touchend触摸移动

username.ontouchstart=function(){
    console.log("touchstart")
}

浏览器事件

load页面全部资源加载完毕

scroll浏览器滚动时触发

事件对象

username.ontouchstart=function(event){
    console.log("event")
}