首页 > 编程语言 >用JavaScript实现事件移除,派发,委托

用JavaScript实现事件移除,派发,委托

时间:2022-11-08 22:02:45浏览次数:46  
标签:function 派发 activeLiel JavaScript var actEle 移除 active

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .active{
            color: red;
        }
    </style>
</head>
<body>
    <button class="btn">按钮</button>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
    <script>
         // EventTarget移除
        var btnEle=document.querySelector('.btn');
        function fn(){
            console.log('输出');
        }
        btnEle.addEventListener('click',fn)
        
        var time1=setInterval(function(){
            btnEle.removeEventListener('click',fn)
        },5000)
        
        // 事件派发
        window.addEventListener('yt',function(){
            console.log('来自yt的呼唤');
        })
        // 派发'yt'事件
        window.dispatchEvent(new Event('yt'));
        
        //事件委托event delegation
        //ul下面4个li,点击li对应的li变红色
        var ulEle=document.querySelector('ul');
        var activeLiel=null;//第一次先置空
        ulEle.addEventListener('click',function(e){
            //方法一
            //将已经拥有active的移除
            // var actEle=ulEle.querySelector('.active');
            // actEle&&actEle.classList.remove('active');//在actEle有值的情况下调用后面
            // 方法二,用变量记录e.target
            activeLiel&&activeLiel.classList.remove('active')//在activeLiel有值的情况下调用后面
            //给点击的对象添加类属性
            e.target.classList.add('active');
            // 给activeLiel赋值
            activeLiel=e.target;
        })
    </script>
</body>
</html>

 

标签:function,派发,activeLiel,JavaScript,var,actEle,移除,active
From: https://www.cnblogs.com/theYT/p/16871371.html

相关文章

  • JavaScript基础语法
     HTML:标记语言JavaScript:编程语言JavaScript发展历史(JS)1.1994年,网景公司(Netscape)发布了Navigator浏览器0.9版,这是世界上第一款比较成熟的网络浏览器,轰动一......
  • JavaScript实现滚动条滚动给div加颜色
    实现原理当滚动的距离大于某一个元素到页面顶部的距离时候,给元素设置实现步骤1.获取某一个元素到页面顶部的距离2.如果距离大于零则给div加上颜色,如果等于0,即归位的时......
  • JavaScript中foreach()用法及使用的坑
    JavaScript中foreach是用于遍历数组的方法,将遍历到的元素传递给回调函数,遍历的数组不能是空的要有值。foreach语法:[].forEach(function(value,index,array){//codeso......
  • 10 个 JavaScript Promise 的面试题
    英文|https://betterprogramming.pub/10-javascript-promise-challenges-before-you-start-an-interview-c9af8d4144ec翻译|杨小爱Promise是JavaScript异步编程的关......
  • 如何像高级 JavaScript 开发人员一样为一般流程编写高阶函数
    英文|https://betterprogramming.pub/writing-high-order-functions-for-general-process-like-a-senior-javascript-developer-4d025baa3dc6翻译|杨小爱我们知道函数是......
  • JavaScript 文件上传完整指南
    https://betterprogramming.pub/a-complete-guide-of-file-uploading-in-javascript-2c29c61336f5翻译|杨小爱文件上传是Web项目的常用功能。相信大家在开发过程中或多......
  • JavaScript 中如何使用状态模式简化对象
    英文|https://medium.com/frontend-canteen/simplify-your-object-with-state-pattern-in-javascript-8674ff46edb1翻译|杨小爱状态模式是一个有趣的模式,它可能是解决一......
  • 11 个 ES2022(ES13)中惊人的 JavaScript 新特性
    英文|https://javascript.plainenglish.io/es13-javascript-features-eed7ed2f1497翻译|杨小爱与许多其他编程语言一样,JavaScript也在不断发展,每年,该语言都会通过新功......
  • 4 个编写JavaScript代码的关键原则
    英文|https://javascript.plainenglish.io/4-key-principles-to-writing-readable-and-efficient-javascript-code-1d022b685b3fJavaScript是一种非常灵活的编程语言,您可......
  • 7 个杀手级 JavaScript 代码段,让您的开发工作更轻松
    英文来源| https://javascript.plainenglish.io/7-killer-javascript-snippets-dbe49a9ccf11由于JavaScript简洁明了的语法赢得了众多开发者的青睐,越来越多的开发者开始......