• JavaScript事件高级导读


    一.注册事件方式

    1.传统注册事件,注册事件唯一性

    1. btns[0].onclick=function(){
    2. alert("hi");
    3. }

    2. 方法监听注册事件 addEventListener   ie9才以上支持

     (1)里面的事件类型是字符串 必须加引号  而且不带on    

     (2)同一个元素  同一个事件可以添加 多个侦听器(事件处理程序)

    1. btns[1].addEventListener("click",function(){
    2. alert(22);
    3. })

    二·.删除事件方式

    1.传统方式删除事件

    1. divs[0].onclick=function(){
    2. alert(1);
    3. // 传统方式删除事件
    4. divs[0].onclick=null;
    5. }

    2.removeEventListener删除事件

    1. divs[1].addEventListener("click",fn);//里面的fn不需要调用加小括号
    2. function fn(){
    3. alert(33);
    4. divs[1].removeEventListener("click",fn);
    5. }

    三.事件对象

    1. var div=document.querySelector("div");
    2. // div.onclick=function(event){
    3. // console.log(event);
    4. // }
    5. div.addEventListener("click",function(e){
    6. console.log(e);
    7. })

     1.event 就是一个事件对象  写的我们侦听函数的小括号里面 当形参来看

      2.事件对象只有有了事件才会存在 它是系统给我们自动创建的,不需要我们传递参数

      3.事件对象 是我们事件的一系列相关数据的集合 跟事件相关 比如鼠标点击就包含了鼠标的相关

           信息 鼠标坐标啊,如果是键盘事件里面就包含了键盘事件的信息  比如判断用户按下了那个键

      4.这个事件对象我们可以自己命比如 event evt e

      5.事件对象也有兼容性问题  ie678  可以通过window.event   兼容性的写法 e=e||window.event

    四.常见事件对象属性和方法

    1.鼠标事件

    onclick          鼠标点击左键触发

    onmouseover    鼠标经过触发

    onfocus         获得鼠标焦点触发

    onblur          失去鼠标焦点触发

    onmousemove   鼠标移动触发

    onmouseup     鼠标弹起触发

    onmousedown   鼠标按下触发

    onmouseenter 鼠标移入

    onmouseleave鼠标移出

    e.target返回的是触发事件的对象(元素)  this 返回的是绑定事件的对象(元素)

      区别 :e.traget 点击哪个元素就返回哪个元素  this是哪个元素绑定了这个事件就返回谁

    (1) e.type 返回事件的类型  比如 点击  鼠标经过

    (2) e.traget 指向我们点击的对象  谁触发了这个事件  我们点击了li , e.traget 返回的是li

    (3)阻止默认行为e.preventDefault()

    1. var a=document.querySelector("a");
    2. a.addEventListener("click",function(e){
    3. e.preventDefault();//dom 标准写法
    4. })
    5. //阻止a链接跳转

    (4)contextmenu 禁止右键菜单

    1. document.addEventListener("contextmenu",function(e){
    2. e.preventDefault();
    3. })

    (5)禁止选中文字 selectstart

    1. document.addEventListener("selectstart",function(e){
    2. e.preventDefault();
    3. })

    client 鼠标在可视区的屏幕坐标(e.clientX  ,  e.clientY);

    page 鼠标在页面文档的坐标 (e.pageX   ,  e.pageY);

    (7) 鼠标移动事件 mousemove

    2.常用键盘事件

    1.keyup 按键弹起的时候触发

    2.keydown 按键按下的时候触发

    3.keypress 按键按下的时候触发 不能识别功能键  比如ctrl shift 左右箭头

    键盘事件对象中的keyCode 属性可以得到相应键的ASCII值

                 1.我们的keydown和keyup事件不区分字母大小写 a 和 A 得到的都是65

                  2.我们的keypress 是区分字母大小写的 a 97  和 A 65

     我们可以利用keyCode返回的ASCII值来判断用户按下了哪个键

  • 相关阅读:
    ping数据包中的进程号
    【JVM】G1垃圾回收器简述
    搞笑段子很皮的文案系列001,可爱有趣文案系列合集
    Java I/O(四)示例代码
    RabbitMQ基本使用一
    已解决java.beans.IntrospectionException: 在Java Beans中内省过程失败的正确解决方法,亲测有效!!!
    (一)基于企业现金流预测的投资决策-项目介绍
    7个实用有效的营销策略帮助推动跨境电商DTC品牌业务
    k8s-----26、细粒度权限管理 RBAC
    Kotlin协程基础-CoroutineContext
  • 原文地址:https://blog.csdn.net/helongzhi/article/details/125468256