博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DOM编程系列之事件
阅读量:6275 次
发布时间:2019-06-22

本文共 2536 字,大约阅读时间需要 8 分钟。

事件

  • 所谓事件就是是浏览器告知JavaScript程序用户的行为

事件的属性

HTML页面元素提供的事件属性

  • HTML页面元素提供的事件属性 -> 元素的属性分类之一

    • DOM提供了一系列的事件名称

示例代码:

DOM对象提供的事件属性

  • DOM对象可以设置事件属性

示例代码:


事件监听器

  • DOM对象提供的事件属性 - 无法同时为一个指定元素绑定相同事件多次
  • 事件监听器也可以设置事件属性
  • 注意: 该方法有浏览器兼容问题

示例代码:

浏览器兼容解决方案

示例代码:

事件监听器的浏览器兼容问题(IE 8以下版本浏览器不支持)        attachEvent(eventName,functionName)方法        * 参数          * eventName - 表示事件名称(注意:必须有on)          * functionName - 表示事件的处理函数     */    btn.attachEvent('onclick',function(){        console.log('xxxx...');    });    // 提供浏览器兼容解决方案    function bind(element, eventName, functionName){        if (element.addEventListener) {            element.addEventListener(eventName, functionName);        } else {            element.attachEvent('on' + eventName, functionName);        }    }

移除注册事件

  • removeEventListener(eventName,functionName)方法

    • 表示对已经绑定的事件进行移除
    • 参数:

      • eventName - 表示要移除的事件名称
      • functionName - 表示事件的处理函数

        • 必须是注册事件的处理函数(就是必须是同一个函数)

示例代码:

解决浏览器兼容问题

示例代码:

IE 8以下的版本浏览器不支持removeEventListener方法()          * detachEvent(eventName,functionName)            * eventName - 表示移除的事件名称(必须有on)            * functionName - 表示事件处理函数              * 必须是注册事件的处理函数(就是必须是同一个函数)     */    function unbind(element,eventName,functionName) {        if (element.removeEventListener) {            element.removeEventListener(eventName,functionName);        }else {            element.detachEvent('on' + eventName,functionName);        }    }

事件对象

  • Event事件对象 - 作为所有事件对象的父级

    • MouseEvent事件对象 - 表示鼠标事件
    • KeyboardEvent事件对象 - 表示键盘事件
    • TouchEvent事件对象 - 表示触摸事件

示例代码:

解决浏览器兼容问题

示例代码:

// IE 8以下版本浏览器提供的添加事件监听器方法 - 事件对象是作为window对象属性出现    btn.attachEvent('onclick',function () {        console.log(window.event);    });    function bind(element, eventName, functionName){        if (element.addEventListener) {            element.addEventListener(eventName, functionName);        } else {            element.attachEvent('on' + eventName, function(){                functionName.call(element);            });        }    }    bind(btn,'click',function(event){        var e = event || window.event;    });    /*btn.onclick = function(event){        console.log(event);    }*/    function myClick(event){        console.log(event);    }

阻止默认行为

  • return false; - return语句

    • 作用 - 当前函数是事件的处理函数时,阻止默认行为
    • 注意 - return语句之后的逻辑代码不会被执行

      • 编写在函数体的最后面
    • 只有在DOM对象的事件属性中具有阻止默认行为的功能

示例代码:

链接

获取鼠标坐标值

  • pageX和pageY

    • 鼠标坐标值相对于当前HTML页面
  • clientX和clientY

    • 表示获取鼠标在可视窗口中的位置
  • screenX和screenY

    • 表示获取鼠标在显示器屏幕中的位置

示例代码:

获取相对于定位父元素的鼠标坐标值

  • offsetX和offsetY

    • 表示获取鼠标相对于在父元素中的位置

示例代码:


事件委托

  • 就是为所有相同父级的子级元素绑定事件

示例代码:

转载地址:http://xagpa.baihongyu.com/

你可能感兴趣的文章
Firefox 是 Pwn2own 2014 上攻陷次数最多的浏览器
查看>>
《Java多线程编程核心技术》——1.8节暂停线程
查看>>
阿里感悟(十八)- 应届生Review
查看>>
《计算广告:互联网商业变现的市场与技术》一第一部分 在线广告市场与背景...
查看>>
话说模式匹配(5) for表达式中的模式匹配
查看>>
《锋利的SQL(第2版)》——1.7 常用函数
查看>>
《Arduino家居安全系统构建实战》——1.5 介绍用于机器学习的F
查看>>
jquery中hover()的用法。简单粗暴
查看>>
线程管理(六)等待线程的终结
查看>>
《HTML5 2D游戏编程核心技术》——第3章,第3.7节反转滚动方向
查看>>
spring boot集成mongodb最简单版
查看>>
DELL EqualLogic PS存储数据恢复全过程整理
查看>>
《Node.js入门经典》一2.3 安装模块
查看>>
《Java 开发从入门到精通》—— 2.5 技术解惑
查看>>
又是神经网络!还能用来盗取XX女演员信息
查看>>
Ruby 1.9概要(5) 异常
查看>>
《网站性能监测与优化》一2.2 交易网站
查看>>
Ceph分布式存储学习指南1.5 Ceph块存储
查看>>
《Tableau 8权威指南》—— 1.1 Tableau是什么
查看>>
Python语言的创始人解释为什么Python数组的索引从0开始
查看>>