javascript如何添加事件和删除事件

js添加移除事件的方法:1、使用addEventListener()方法添加事件,用于向指定元素添加事件句柄;2、使用removeEventListener()方法删除事件,用于移除由addEventListener()方法添加的事件句柄。

javascript如何添加事件和删除事件

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

一、addEventListener()和removeEventListener()讲解

     addEventListener()与removeEventListener()用于处理指定和删除事件处理程序操作。

     它们都接受3个参数:如     addEventListener(“事件名” , “事件处理函数” , “布尔值”);        (注:事件名不含”on”,如“click”)

立即学习“Java免费学习笔记(深入)”;

     现在的版本可以省略第三个参数,默认值为false

示例:

要在body上添加事件处理程序,可以使用下列代码:

document.body.addEventListener('touchmove', function (event) {    event.preventDefault();},false);

登录后复制

    通过addEventListener()添加的事件处理程序只能使用removeEventListener()来移除;移除时传入的参数与添加处理程序时使用的参数相同。这也意味着通过addEventListener()添加的匿名函数无法移除

错误用法示例:

document.body.addEventListener('touchmove', function (event) {    event.preventDefault();},false);document.body.removeEventListener('touchmove', function (event) {    event.preventDefault();},false);

登录后复制

      这个例子中,使用addEventListener()添加一个事件处理程序。虽然调用removeEventListener(0是看似使用了相同的参数,但实际上,第二个参数与传入addEventListener()中的那一个完全不同的函数。而传入removeEventListener()中的事件处理程序函数必须与传addEventListener()中的相同

正确用法示例:

function bodyScroll(event){    event.preventDefault();}document.body.addEventListener('touchmove',bodyScroll,false);document.body.removeEventListener('touchmove',bodyScroll,false);

登录后复制

重写后的这个例子在addEventListener()和removeEventListener()中用的是相同的函数。

共用函数不能带参数,错误用法示例:

function bodyScroll(event){    event.preventDefault();}document.body.addEventListener('touchmove',bodyScroll(),false);document.body.removeEventListener('touchmove',bodyScroll(),false);

登录后复制

总结:

1:相同事件绑定和解除,需要使用共用函数;绑定和解除事件时 事件没有”on” 即onclick写成click

2:共用函数不能带参数;

二、addEventListener()与removeEventListener()的第三个参数详解

     布尔值参数是true,表示在捕获阶段调用事件处理程序;就是最不具体的节点先接收事件,最具体的节点最后接收事件

    如果是false,在冒泡阶段调用事件处理程序;则是先寻找指定的位置,由最具体的元素接收,然后逐级向上传播至最不具体的元素的节点(文档)

DOM事件流如图(剪自javascript高级程序设计):

688MJOO~]T~WE@WO7Z3GYUF.png

由图可知捕获过程要先于冒泡过程, 即 true的触发顺序在false前面

实例测试

  HTML内容:  

nbsp;html>        添加事件&&解绑事件    

        

最外面

        

            

最里面

            js内容:(第1种情况)

登录后复制

addEventListener的第三个参数有两种情况:ture & false   所以有2*2*2=8种情况

结论:

1.true的触发顺序总是在false前面

2.如果多个均为true   则外层触发先于内层

3.如果多个均为false  则内层触发先于外层

【推荐学习:javascript高级教程】

以上就是javascript如何添加事件和删除事件的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2709513.html

(0)
上一篇 2025年3月7日 20:41:08
下一篇 2025年3月7日 20:41:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • javascript如何自动关闭窗口

    方法:1、使用setTimeout()方法关闭,语法“setTimeout(“clock();”,1000);”;2、窗口没有提示自动关闭,语法“this.window.opener=null; window.clo…

    2025年3月7日
    100
  • 如何实现javascript延时加载

    实现方法:1、使用setTimeout方法,语法“setTimeout(‘js方法’,延迟时间);”;2、引入外部js脚本文件时,放入body中,则会按照页面从上倒下的加载顺序来运行JavaScript的代码。 本教…

    2025年3月7日
    200
  • 简析如何用js实现简单轮播

    设计思路:利用js当中的定时器实现图片轮播的效果,将所有图片放入img文件夹下,我当时是存放了三张照片。然后将三张照片分别放入三个div,每一个div显示和隐藏都是靠定时器进行控制,左下角有三个数字的div代表这是第几张图片,一共有三张图片…

    编程技术 2025年3月7日
    200
  • 用js快速求出三角形面积

    三角形面积的公式大家应该都知道吧,也就是面积等于二分之一乘以底乘以高,哈哈,忘了也没关系,本文就给大家介绍如何用js计算三角形面积。 首先给大家简单介绍下,三角形面积公式: 三角形面积公式是指使用算式计算出三角形的面积,同一平面内,且不在同…

    2025年3月7日
    200
  • 精选8个菜单导航切换特效代码分享(免费下载)

    菜单导航在一个网站中是至关重要的,它可以直接影响用户的体验,一个有吸引力的导航能够引导用户浏览网站中的更多内容。本篇文章给大家分享8个菜单导航切换特效代码,全部免费,可以点击文中对应链接进行动画预览,欢迎大家分享下载~ 1、手机端svg图标…

    2025年3月7日 编程技术
    200
  • 如何通过js程序删除数组重复项(忽略大小写敏感)

    本文将给大家介绍如何通过javascript来删除数组中的重复项,并且要求忽略大小写敏感。那么对于该问题,大家有没有自己的实现思路呢? 比如我先给一个示例数组:[1, 2, 2, 4, 5, 4, 7, 8, 7, 3, 6],该数组中明显…

    2025年3月7日
    200
  • 如何用js计算最大公约数

    在开始本文之前,想问问大家还记不记的什么是最大公约数?其实就是指两个或多个整数共有约数中最大的一个,那么今天就给大家介绍如何通过javascript程序来计算出最大公约数。 不过关于最大公约数的简单概念,还是要在这里介绍一下: →最大公因数…

    2025年3月7日
    200
  • JS字符串学习之计算给定字符的全部出现位置

    在之前的文章《js怎么知道给定子串是不是存在》中,我们介绍了通过获取子串在字符串的第一次或最后一次出现位置的方法。这次我们加大难度,看看如何获取子串在字符串的所有出现位置。 我们在之前的文章中了解到使用indexOf()和lastIndex…

    2025年3月7日
    200
  • 深入浅析React Native与web的基本交互(附代码)

    之前的文章《教你怎么使用css3给图片添加渐变效果(代码详解)》中,给大家介绍怎么使用css3给图片添加渐变效果。下面本篇文章给大家介绍一下React Native与web的基本交互,有一定的参考价值,有需要的朋友可以参考一下。 React…

    编程技术 2025年3月7日
    200
  • JS字符串学习之通过截取子串的方式返回文件扩展名

    在之前的文章《js字符串学习之怎么返回给定下标间的子串》中,我们介绍了截取指定下标位置间字符串,并返回被提取的部分(子串)的方法。这次我们继续javascript字符串学习,了解另一种截取字符串方法,感兴趣的朋友可以学习了解一下~ 本文的主…

    2025年3月7日 编程技术
    200

发表回复

登录后才能评论