• 第四天:事件对象(常用的两个属性和两个方法)


    由于放假,信息没能及时更新,抱歉

    学习内容:

    事件对象:

    在触发DOM事件的时候,都会产生一个对象

    事件的常见属性

    type :获取事件类型

    target: 获取事件目标

    代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>事件对象</title>
    </head>
    <body>
    <button id="btn" onclick="">按钮</button>
    </body>
    <script>
    document.getElementById("btn").addEventListener("click",showType);
    function showType(event){
    // alert(event.type); 获取事件的类型 “click”,如果修改成mouseover也可以
    alert(event.target); 获取事件的目标
    }

    </script>
    </html>

    补充说明:
    获取事件类型时,弹出对话框,对话框显示内容为click
    获取事件目标时,点击按钮,弹出框如下:

    事件的常见方法

    stopPropagation():阻止事件冒泡

    preventDefault() :阻止事件默认行为

    举例说明什么是事件冒泡

    代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>事件对象</title>
    </head>
    <body>
    <div id="div">
    <button id="btn" onclick="">按钮</button>
    </div>
    </body>
    <script>
    document.getElementById("btn").addEventListener("click",showType);
    document.getElementById("div").addEventListener("click",showDiv);
    function showType(event){

    alert(event.target);
    }
    function showDiv(event){
    alert("div");
    }
    </script>
    </html>

    运行结果:

    点击按钮,弹出了对话框,返回事件目标,关闭对话框后,再次弹出对话框内容为“div”

    虽然只是点击了按钮,但是事件向上传递,因为button属于div中,这就是事件的冒泡,如何阻止事件的冒泡,就增加如下一条代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>事件对象</title>
    </head>
    <body>
    <div id="div">
    <button id="btn" onclick="">按钮</button>
    </div>
    </body>
    <script>
    document.getElementById("btn").addEventListener("click",showType);
    document.getElementById("div").addEventListener("click",showDiv);
    function showType(event){

    alert(event.target);
    event.stopPropagation(); //阻止事件冒泡
    }
    function showDiv(event){
    alert("div");
    }
    </script>
    </html>

    阻止事件的冒泡,则第一个框弹出后,不会弹出showdiv这个函数的内容


    阻止事件的默认行为

      什么是事件的默认行为,例如我们添加一个连接,连接文字“百度”就会默认跳转到百度页

    例如:<a href="http://www.baidu.com" >百度</a>

      代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>事件对象</title>
    </head>
    <body>
    <div id="div">
    <button id="btn" onclick="">按钮</button>
    <a href="http://www.baidu.com" id="aid">百度</a>
    </div>
    </body>
    <script>
    document.getElementById("btn").addEventListener("click",showType);
    document.getElementById("div").addEventListener("click",showDiv);
    document.getElementById("aid").addEventListener("click",showA);
    function showType(event){
    alert(event.target);
    event.stopPropagation();
    }
    function showDiv(event){
    alert("div");
    }
    function showA(event){
    event.stopPropagation(); // 阻止了冒泡行为,不然先跳出div
    event.preventDefault(); //阻止了默认行为,打开百度
    }
    </script>
    </html>

      

    
    
  • 相关阅读:
    php练习题之裁判打分
    OPENSUSE:安装方式
    openSUSE:下载帮助
    安装mysql时出现HTTP&nbsp;500&nbsp;内部服务…
    关于wamp启动是80端口被占用的问题…
    推荐15款好用的JS开发工具
    u盘美化
    wordpress怎么修改地址栏小图标
    显示桌面图标不见了
    站长必备的131个高权重外链库(转…
  • 原文地址:https://www.cnblogs.com/fenr9/p/5594280.html
Copyright © 2020-2023  润新知