美文网首页
JS 事件初识

JS 事件初识

作者: 弱冠而不立 | 来源:发表于2020-08-29 19:38 被阅读0次

什么是事件?

事件就是在文档或者浏览器窗口触发的某些动作,例如鼠标点击或滚动,键盘按下放起等。

事件分类

  1. 鼠标事件
    • click 单击鼠标事件
    • blclick 双击鼠标事件
    • mouseover 鼠标移入目标元素(该事件冒泡)
    • mouseenter 鼠标移入元素范围内触发(该事件不冒泡)
    • mouseout 鼠标移出目标元素上方(该事件冒泡)
    • mouseleave 鼠标移出目标元素(该事件不冒泡)
    • mousedown 鼠标按下时触发
    • mouseup 鼠标抬起时触发
  2. HTML 事件
    • load 处理元素加载事件
    • scroll 处理元素滚动时
    • submit 点击提交按钮触发 <input type="submit" />
    • change 设置当前元素的 change 事件,和 oninput 不同 onchange事件处理程序不一定会针对元素值的每次更改而调用
    • input 处理input select textarea 元素上的 input 事件
    • foucs 当前元素获得焦点时会触发
    • blur 当前元素失去焦点时会触发
  3. 键盘事件
    • keydown 键盘按下时触发(任何按键有效)
    • keypress 键盘按下并放开时触发(系统按键无效,例如:箭头按键,功能按键)
    • keyup 放开按键时触发(任何按键有效)

事件使用

1. HTML 事件

  1. 绑定:绑定操作发生在 HTML 代码中的事件,称为 HTML 事件。
    语法上:on + 事件名称 = "函数1;函数2;"。例如:
    <div onclick="fun1();"></div> <div onmouseover="fun1();fun2();"></div>
  2. 移除:
    element.setAttribute("on+事件名称", null)
    element.removeAttribute("on+事件名称")

缺点: JS 与 HTML 耦合性太强,修改了 JS 也可能要修改 HTML。当函数没有加载成功时,用户去触发事件,则会报错。

2. DOM 0级 事件

调用函数的方式:
  1. 节点.on+事件名称 = function() {}
  2. 节点.on+事件名称 = 函数名
    例如:div.onclick = function() {} div[".onclick "]= function() {} div.onclick = fun1()

3. DOM 2级 事件

  1. 事件流语法:
    1. 非ie8以下:对象.addEventListener("事件类型","函数","事件流"),事件类型:不加on。例如:
      div.addEventListener("click",fun1(),false) //冒泡型
    2. ie8以下:对象.attachEvent("事件类型","函数","事件流"),事件类型:加on。例如:
      div.attachEvent("onclick",fun1(),true) //捕获型

注:事件流参数有两个值:
默认值:false,冒泡型(事件由内到外)
true,捕捉型(事件由外到内)

  1. 冒泡:事件由某个元素(子节点)逐级向上传播(父节点)
  2. 捕获:事件由某个元素(父节点)逐级向下传播(子节点)
  3. DOM2 事件移除的方式:
    • ie8以上或者非ie:elementNode.removeEventListener("事件类型","函数","事件流")
    • ie8以下:elementNode.detachEvent("on+事件类型","移除后的回调函数")

DOM0 和 DOM2 的区别

  1. DOM0 一个元素节点赋值多个事件,只引用最后一个。DOM2 一个元素节点添加多个事件都会应用。例如:
div.onclick = fun1;
div.onclick = fun2;
div.onclick = fun3;
//只有最后一个有用
div.addEventListener("click",fun1);
div.addEventListener("click",fun2);
div.addEventListener("click",fun3);
//三个事件都有用

怎样阻止冒泡和捕获?

ie8以上或者非ie:e.stopPropagation()
ie8以下:window.event.cancelBubble = true

相关文章

  • JS 事件初识

    什么是事件? 事件就是在文档或者浏览器窗口触发的某些动作,例如鼠标点击或滚动,键盘按下放起等。 事件分类 鼠标事件...

  • ## JS初识

    ## JS初识 # js初识 # js注释 # 变量 # 变量的命名 JS数值的类型 # Number类型 # S...

  • 初识js事件委托(1)

    本来打算介绍clipboard.js如何使用,却发现在https://clipboardjs.com介绍中事件委托...

  • js(事件)

    js 事件js事件.png

  • js操作页面三步骤

    js操作页面三步骤 js事件 鼠标事件 文档事件 键盘事件 表单事件 事件对象 js操作内容 js操作样式 页面转...

  • 事件

    1、鼠标的移入移除js部分 2、鼠标事件js部分 3、事件对象js部分 4、键盘事件js部分 5、输入框事件js部...

  • Python小白学习进行时---js基础(2018-7-13)

    一、JS初识 二、JS语法 三、运算符 四、分支结构 ==============================...

  • 20、jQuery 事件机制

    20、jQuery 事件机制 原生js事件与jQuery事件: (1)用原生的js给div注册事件 原生js注册相...

  • javascript 中的事件机制

    js之事件机制 1、事件初探 1.1 js事件的概述 JavaScript事件:JavaScript是基于事件驱动...

  • js初识

    js核心:ECMAScript——ES:基础语法DOM:文档对象模型BOM:浏览器对象模型 js特点:(1)脚本语...

网友评论

      本文标题:JS 事件初识

      本文链接:https://www.haomeiwen.com/subject/utedsktx.html