zoukankan      html  css  js  c++  java
  • 第三天:事件处理

    学习来源:

    F:新建文件夹 (2)HTML5开发HTML5开发4、JavaScript基础6、JavaScript事件详解

    学习内容:

    事件的处理包含如下方式:

    1.HTML事件处理程序,就是前几节讲过的鼠标经过,鼠标点击等处理方式

    2.DOM0级事件处理

          把一个函数赋值给一个事件处理程序属性

    运行结果,只会弹出第三个,若赋值为空不注释,则没有弹出框,事件会被覆盖掉。

     代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>事件处理</title>

    </head>
    <body>
    <button id="btn" onclick="">按钮</button>
    </body>
    <script>

    var x= document.getElementById("btn");
    x.onclick= function(){alert("处理时间方法1");}
    x.onclick= function(){alert("处理时间方法2");}
    </script>
    </html>

    3.DOM2级处理事件

      1)第一种写法:比较长,可以将function方法摘出来如方式2 

    运行结果:弹出对话框:DOM级事件处理程序

      2)第二种写法:

    运行结果:弹出对话框:DOM级事件处理程序

      3)第三种写法:

    运行结果:弹出对话框:DOM级事件处理程序1;确定后,弹出对话框:DOM级事件处理程序2;确定后,弹出对话框:DOM级事件处理程序3

    补充:这个事件处理不被覆盖,0级事件处理会被覆盖

    代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>事件处理</title>

    </head>
    <body>
    <button id="btn" onclick="">按钮</button>
    </body>
    <script>

    // var x= document.getElementById("btn");
    // x.onclick= function(){alert("处理时间方法1");}
    // x.onclick= function(){alert("处理时间方法2");}
    var x = document.getElementById("btn");
    x.addEventListener("click",demo);
    x.addEventListener("click",demo1);

    function demo(){
    alert("D2级事件demo处理")
    }
    function demo1(){
    alert("D2级事件demo1处理")
    }
    </script>
    </html>

    2)移除一个事件:x.removeEventListener("click",demo); 

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>事件处理</title>

    </head>
    <body>
    <button id="btn" onclick="">按钮</button>
    </body>
    <script>

    // var x= document.getElementById("btn");
    // x.onclick= function(){alert("处理时间方法1");}
    // x.onclick= function(){alert("处理时间方法2");}
    var x = document.getElementById("btn");
    x.addEventListener("click",demo);
    x.addEventListener("click",demo1);

    function demo(){
    alert("D2级事件demo处理")
    }
    function demo1(){
    alert("D2级事件demo1处理")
    }
    x.removeEventListener("click",demo); //移除事件demo
    </script>
    </html>

    4.IE事件处理程序:为了浏览器的兼容

    为了浏览器的兼容,我们还会采取IE事件处理程序 

    attachEvent()    //添加一个事件

    detachEvent()    //移除一个事件

    代码如下:

    <script>
    var x= document.getElementById("btn");
    x.attachEvent("onclick",demo); // a
    x.detachEvent("onclick",demo); // b

    function demo(){
    alert("hello");
    }

    </script>

    运行结果:(仅仅在ie上支持)
    如果注释了b,则会弹出框hello
    如果不不注释了b,则不会弹出框



    浏览器的兼容性代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>事件处理</title>

    </head>
    <body>
    <button id="btn" onclick="">按钮</button>
    </body>
    <script>
    var x= document.getElementById("btn");
    if(x.addEventListener){
    x.addEventListener("click",demo);
    }else if(x.attachEvent )
    {
    x.attachEvent("click".demo)
    }else{
        x.onclick=demo();
    }

      function demo(){
        alert("helsslo");
    }
    </script>
    </html>

    学后感:

  • 相关阅读:
    Net设计模式实例之简单工厂模式(Simple Factory Pattern)
    Net设计模式实例系列文章总结
    2019年工作总结
    在Asp.Net Core中集成Kafka(中)
    如何将生产环境的服务Docker镜像拉取到本地进行调试
    记一次EFCore类型转换错误及解决方案
    Asp.Net Core中创建多DbContext并迁移到数据库
    ABP中的AutoMapper
    EFCore中的导航属性
    Asp.Net Core 调用第三方Open API查询物流数据
  • 原文地址:https://www.cnblogs.com/fenr9/p/5568056.html
Copyright © 2011-2022 走看看