javascript核心技术(三十六)原生JS和Jquery的移除事件操作

[复制链接]
查看: 1160|回复: 31
发表于 2023-1-27 12:42:17 | 显示全部楼层 | 阅读模式
通过移除事件绑定语法可以动态的将元素上的事件移除掉。

本节涉及的知识点如下:
  1. 1、原生js的事件移除,分为行内绑定、js动态绑定和事件监听绑定。
  2. 2、jquery移除事件绑定语法。
  3. 3、jquery移除并绑定事件语法。
复制代码


1、移除行内绑定和js动态绑定事件语法
  1. 事件对象.事件类型="";
复制代码
<!DOCTYPE html>
<html>

<head>
        <meta charset="utf-8">
        <title>移除行内绑定和js动态绑定事件</title>
        <script src="./jquery.js"></script>
</head>
<style>
        #box1 {
                height: 200px;
                width: 200px;
                background-color: antiquewhite;
        }

        #box2 {
                height: 100px;
                width: 100px;
                background-color: rgb(151, 104, 43);
        }
        #box3 {
                height: 100px;
                width: 100px;
                background-color: rgb(126, 117, 105);
        }
</style>

<body class="" id="body">
        <div id="box1">
                <div id="box2">
                                        box2
                </div>
                <div id="box3">
                                        box3
                </div>
        </div>
        <script type="text/javascript">
                        // 原生移除动态或行内绑定事件
                        var box3 =document.getElementById('box3');
                        box3.onclick=function(){//给box3绑定了点击事件
                                        console.log('原生click事件');
                        }
                        box3.onclick="";//又将box2的点击事件移除
                        // 此时点击box3不会发生任何事
        </script>

</body>

</html>


2、移除监听绑定事件语法
  1. 事件对象.removeEventListener('事件类型',事件函数);
复制代码
<!DOCTYPE html>
<html>

<head>
        <meta charset="utf-8">
        <title>移除监听绑定事件</title>
        <script src="./jquery.js"></script>
</head>
<style>
        #box1 {
                height: 200px;
                width: 200px;
                background-color: antiquewhite;
        }

        #box2 {
                height: 100px;
                width: 100px;
                background-color: rgb(151, 104, 43);
        }
        #box3 {
                height: 100px;
                width: 100px;
                background-color: rgb(126, 117, 105);
        }
</style>

<body class="" id="body">
        <div id="box1">
                <div id="box2">
                                        box2
                </div>
                <div id="box3">
                                        box3
                </div>
        </div>
        <script type="text/javascript">
                        // 原生移除监听事件
                        //我们知道,通过addEventListener事件监听方式可以给同一个元素绑定多个相同的事件,它们都是执行.
                        //例如:为box3绑定两个点击事件
                        //所以在移除时,就需要指定到底除点击事件的哪个事件函数
                        function f(){//定义一个事件函数
                                        console.log('addEventListener click事件');
                        }
                        box3.addEventListener('click',f);//给box3的点击事件绑定了事件函数f
                        box3.removeEventListener('click',f);//移除了box的点击事件
                        //此时点击box3不会发生任何事
        </script>

</body>

</html>


3、jquery移除事件绑定语法
  1. 事件对象.off('事件类型');
复制代码
<!DOCTYPE html>
<html>

<head>
        <meta charset="utf-8">
        <title>jquery移除事件</title>
        <script src="./jquery.js"></script>
</head>
<style>
        #box1 {
                height: 200px;
                width: 200px;
                background-color: antiquewhite;
        }

        #box2 {
                height: 100px;
                width: 100px;
                background-color: rgb(151, 104, 43);
        }
        #box3 {
                height: 100px;
                width: 100px;
                background-color: rgb(126, 117, 105);
        }
</style>

<body class="" id="body">
        <div id="box1">
                <div id="box2">
                                        box2
                </div>
                <div id="box3">
                                        box3
                </div>
        </div>
        <script type="text/javascript">
                        // jq移除事件
                        $('#box2').click(function(){//给box2绑定了点击事件
                                console.log('box1');
                        });
                        $('#box2').off('click');//移除了box2的点击事件
                        // 此时点击box2什么也不会发生
        </script>

</body>

</html>

4、jquery移除并绑定事件语法
  1. 事件对象.off('移除的事件类型').on('重新绑定的事件类型',重新绑定的事件函数);
复制代码
<!DOCTYPE html>
<html>
<head>
        <meta charset="utf-8">
        <title>jquery移除并绑定事件</title>
        <script src="./jquery.js"></script>
</head>
<style>
        #box1 {
                height: 200px;
                width: 200px;
                background-color: antiquewhite;
        }

        #box2 {
                height: 100px;
                width: 100px;
                background-color: rgb(151, 104, 43);
        }
        #box3 {
                height: 100px;
                width: 100px;
                background-color: rgb(126, 117, 105);
        }
</style>

<body class="" id="body">
        <div id="box1">
                <div id="box2">
                                        box2
                </div>
                <div id="box3">
                                        box3
                </div>
        </div>
        <script type="text/javascript">
                        //jquery移除并绑定事件
                        $('#box2').click(function(){//给box2绑定了一个点击事件
                                        console.log('clickbox1');
                        });
                        $('#box2').mouseup(function(){//又给box2绑定了一个鼠标弹起事件
                                        console.log('mouseupbox1');
                        });
                        $('#box2').off('mouseup').on('mousedown',function(){//移除了鼠标弹起事件,并重新绑定了鼠标按下事件
                                        console.log('mousedownbox2');
                        });
                        // 此时点击box2先执行鼠标按下事件,再执行鼠标点击事件
        </script>
</body>
</html>

javascript核心技术(三十六)原生JS和Jquery的移除事件操作
以上我们分别用原生js语法和jq语法绑定了事件,并移除了事件,请大家把以上代码复制下来,分别去测试一下移除效果。



易博软件介绍

0

主题

14

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-2-20 12:41:56 | 显示全部楼层
其实很多人都懂编程,但不是很精通。我也没有找到工作。我可那还没有你精。我是说VC。  我学VB4年了。我QQ162252487。

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-3-4 03:10:12 | 显示全部楼层
谢谢!  人的一生中,能够多遇上几个这样的人,那么世界上很多很多的人,将会少走很多很多的路。

0

主题

19

帖子

10

积分

营销入门

Rank: 2

积分
10
发表于 2023-3-14 11:48:40 | 显示全部楼层
谢!
发表于 2023-3-23 20:20:50 | 显示全部楼层
有点怕怕的,面试这么严

0

主题

11

帖子

6

积分

营销入门

Rank: 2

积分
6
发表于 2023-3-29 08:13:49 | 显示全部楼层
好文!此文让我少走四年弯路!!!
发表于 2023-4-3 15:26:42 | 显示全部楼层
经验之谈....受益匪浅  

0

主题

18

帖子

10

积分

营销入门

Rank: 2

积分
10
发表于 2023-4-8 21:38:24 | 显示全部楼层
我说两句,第一个就是我写了是转贴,转的地方就是我的学校,另外我也在个人资料里写了联系方式,希望在以后编程的道路上得到大家的支持和帮助.

0

主题

13

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-4-13 14:29:46 | 显示全部楼层
很好,感觉现在在学校的计算机课太没质量了!!我是新手,希望多点交流啊

0

主题

21

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-4-18 08:37:59 | 显示全部楼层
我说两句,第一个就是我写了是转贴,转的地方就是我的学校,另外我也在个人资料里写了联系方式,希望在以后编程的道路上得到大家的支持和帮助.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表