一些简单常用的事件

本文深入探讨了JavaScript中的事件处理,包括事件源、事件类型和事件处理函数的概念。介绍了this在不同场景下的指向,详细阐述了DOM0级和DOM2级事件绑定的区别及使用,并提供了事件解绑的方法。此外,还列举了常见的鼠标事件、表单事件和键盘事件,以及如何通过事件对象获取相关信息。最后,讲解了事件对象的兼容性处理和一些关键属性,如鼠标位置等。
摘要由CSDN通过智能技术生成

事件:能被JS监听到的行为

事件三要素

  • 事件源:触发事件的源头,谁触发了这个事件

  • 事件类型:是哪种事件类型-如:鼠标事件,键盘事件

    ​ click、dbclick、mouseover、mouseout

  • 事件处理函数:事件触发后执行的行为({}会执行的代码)

关于this

  • 事件中的this:指向事件源
  • 普通函数中的this:指向window

This的形式

  • 形式一:

    • oBtn.onclick = function(){this指向的就是oBtn}
  • 形式二:

    • oBtn.onclick = fn

​ function fn ( ) {this的指向就是oBtn}

  • 形式三:

    • function fn(obj){obj 指代的就是点击元素}
  • 4、 普通函数内的this

    ​ function method(){ consoloe.log(this) }

    ​ method()

事件的绑定

  • DOM0级事件绑定(事件注册)

    • 语法:事件源.on事件类型 = 事件函数
    • Adj;div.onclick = function () {}
    • 缺点:不能给同一个对象的同一个事件进行多次绑定
    • 优点:书写简单,兼容性好
  • DOM2级事件绑定(事件监听)

    • IE高版本的写法

      • 语法:事件源.addEventListener(“事件类型”,事件处理,布尔值)。第三个参数可以酌情删去

      • 优点:可以给同一个对象的同一个事件进行多次绑定

      • 缺点:兼容性不好(IE低版本的不支持该写法)

    • IE低版本的写法

      • 语法:事件源.attachEvent(“on事件类型”,事件处理函数)
      • 此处只有两个参数
  • adj:需求:点击div,变色,变内容

    • DOM0级事件绑定(如下之后第二个事件可以生效)

      oDiv.onclick = function () {
      this.style.backgroundColor = 'yellow'
      // }
      oDiv.onclick = function () {
       this.innerHTML = 'yellow'
      // }
      
    • DOM2级事件绑定(如下可以生效)

      oDiv.addEventListener('click',function(){
      		this.style.backgroundColor = 'yellow'
      	})
      oDiv.addEventListener('click',function(){
      		this.innerHTML = 'yellow'
      	})
      

事件解绑

  • DOM0级解绑
    • 事件源.on事件类型 = null
  • DOM2级解绑
    • 注意:先绑定再移出
    • 1.绑定:事件源.addEventListener(‘事件类型’,fn)
    • 2.解绑:事件源.removeListener(‘事件类型’,fn)

事件类型

鼠标事件

  • click单击
  • dblclick双击
  • mouseover/mouseout 鼠标移入移出
  • mouseenter/mouseleave 移入移出
  • mousedown/mousemove/mouseup 按下 移动 抬起
  • contextmenu 右键

表单事件

  • focus 获取焦点时触发
  • blur 市区焦点时触发
  • input 输入内容时触发(只要有改变就会触发)
  • change 内容改变时触发(相较于默认内容,触发必须失焦)
  • submit 提交时触发
  • reset 重置时触发

键盘事件

注!:只有部分事件可以绑定键盘事件,window document 表单元素

  • keydown:按下键盘时触发,会连续触发
  • keypress:按住键盘时触发,会连续触发,与按住不易区分
  • keyup:从键盘抬起时触发,抬起一次触发一次,较为常用

浏览器事件(仅有window触发)

  • window.onscroll = function(){} 页面滚动时触发
  • window.onresize = function(){} 页面窗口大小发生改变时触发
  • window.onload = function(){} 页面资源加载结束后触发

事件对象:

  • 作用:时间对象中包含(记录)该事件发生时的一系列信息

  • 时间对象的获取:

    • 标准浏览器下获取:

      • 事件处理函数的参数位置,这个参数就是事件对象

        odiv.onclick = function(e){
        e就事件对象
        }

    • IE低版本获取:时间处理函数的内部用window.event来表示时间对象

    • 处理兼容性问题

      odiv.onclick = function(e){
      		var ev = e || window.event;//ev就是兼容性的事件对象
      	}
      
  • 鼠标事件对象的一些属性:

    • e.pageX和e.pageY:鼠标点击位置距离页面的左偏移量和上偏移量
    • e.clientX和e.clientY:鼠标点击位置距离浏览器窗口的左偏移量和上偏移量
    • e.offSetX和e.offSetY:鼠标点击位置距离自身元素(事件源)的左偏移量和上偏移量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值