• 14前端javascript——事件


    1、注册事件

    • 1.1传统的注册事件:利用on开头的事件

      • 注册事件的唯一性

      • 同一个元素同一事件只能设置一个处理函数,最后注册的处理函数会覆盖前面注册的处理函数

    • 1.2方法监听注册方式

      • addEventListener(type,listener,[,useCapture])事件监听方式,可以注册多个监听器

        • type:事件类型,不用on开头

        • listener:事件处理函数,最好不能是匿名函数,否则不知道删除事件就不知道删除哪个了

        • 可选参数,boolean类型,默认false(冒泡) true(捕获)

    2、删除事件

    • 2.1传统方式解绑:eventTarget.onclick = null;

    • 2.2方法监听解绑事件

      • removeEventListener(type,listener[,useCapture])

        • type:事件类型,不用on开头

        • listener:事件处理函数:不能是匿名函数,否则不知道删除谁

        • 可选参数,boolean类型,默认false(冒泡) true(捕获)

    3、DOM事件流

    • 事件流描述的是事件在页面中的接收顺序

    • 事件捕获:从DOM最顶层结点开始,逐级向下传播

    • 事件冒泡:事件由具体元素接收后,逐级向上传播到DOM最顶层节点

    • onblur、onfocus、onmouseenter、onmouseleave事件没有冒泡

    4、事件对象event

    • 放在监听函数的小括号里面,只有有了事件,才有事件对象,系统创建的

    • 事件对象是事件的一系列数据集合,和事件相关的信息

    • 事件对象我们自己可以自己命名

    • ie678 window.event获取事件对象

    • 事件对象常用的属性和方法

      • 3.1 e.target 返回触发事件的对象

      • 3.2 e.srcElement 返回触发事件的对象非标

      • 3.3 e.type 返回事件的类型

      • 3.4 e.cancelBubble 阻止冒泡非标

      • 3.5 e.returnValue 阻止默认事件非标

      • 3.6 e.preventDefault() 阻止默认事件

      • 3.7 e.stopPropagation() 阻止冒泡

    5、事件委托

    • 原理:不给每个子节点单独设置事件监听器,而且事件监听器设置在父节点上,然后利用冒泡原理影响到每一个子节点,优点是只操作一次dom

    6、鼠标

    6.1常用的鼠标事件

    • onclick 鼠标点击触发

    • onmouseover 鼠标经过触发

    • onmouseout 鼠标离开触发

    • onfocus 获得鼠标焦点触发

    • onblur 失去鼠标焦点触发

    • onmousemove 鼠标移动触发

    • onmouseup 鼠标弹起触发

    • onmousedown 鼠标按下触发

    • contextmenu 禁止鼠标右键 e.preventDefault();

    • selectstart 禁止选中文字 e.preventDefault();

    6.2鼠标事件对象

    • MouseEvent

      • e.clientX鼠标在可视区的x坐标

      • e.clientY鼠标在可视区的x坐标

      • e.pageX鼠标在文档区的x坐标

      • e.pageY鼠标在文档区的y坐标

      • e.screenX鼠标在电脑屏幕的x坐标

      • e.screenY鼠标在电脑屏幕的y坐标

    常用的键盘事件

    • onkeyup 某个键盘被松开时触发,

    • onkeydown 某个键盘被按下触发

    • onkeypress 某个键盘被按下触发,不包括功能键

    • 执行顺序:onkeydown、onkeypress、onkeyup

    • 用addEventListener不需要加on

    键盘事件对象

    • keyboardEvent对象里面属性和方法

      • keyCode 按键的ascii码:onkeyup、onkeydown不区分字母大小写,onkeypress区分字母大小写

  • 相关阅读:
    Restful WCF问题总结
    vs2010发布、打包安装程序(超全超详细)
    WCF and Android Part I
    GCC安装及配置
    mysql5.58的编译安装(转)
    源于魔兽!《植物大战僵尸》成功奥秘 (转)
    mysql5.5.8安装问题解决方法(转)
    RHEL5(CentOS)下nginx+php+mysql+tomcat+memchached配置全过程(转)
    已经安装curses,但cmake安装mysql时,依然提示No curses/termcap library found(转)
    centos5安装飞信机器人监控web服务器(转)
  • 原文地址:https://www.cnblogs.com/muzihuan/p/13303194.html
Copyright © 2020-2023  润新知