zoukankan      html  css  js  c++  java
  • JavaScript事件

    1、JavaScript事件流

    (1)事件冒泡:具体到不具体(即button到DOCTYPE)。

    (2)事件捕获:不具体到具体(即DOCTYPE到button)。

    2、JavaScript事件处理

    (1)HTML事件处理:

    直接添加到HTML结构中。

    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="utf-8">
    <title>HTML事件处理</title>
    </head>
    <body>
    <div id="div">
    <button id="btn1" onclick="demo()">按钮</button>
    </div>
    <script type="text/javascript">
    function demo () {
    // body...
    alert("Hello HTML事件处理");
    }
    </script>
    </body>
    </html>

    (2)DOM0级事件处理

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

     缺点:多个事件会被覆盖掉,就近原则。

    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="utf-8">
    <title>HTML事件处理</title>
    </head>
    <body>
    <div id="div">
    <button id="btn1" onclick="demo()">按钮</button>
    </div>
    <script type="text/javascript">
    var btn1=document.getElementById("btn1");
    btn1.onclick=function (){alert("Hello DOM0级事件处理");}

    // btn1.onclick=null;//清除事件处理
    </script>
    </body>
    </html>

    (3)DOM2级事件处理:(IE则IE9版本之上)

    优点:事件不会被覆盖

    addEventListener(“事件名”,“事件处理函数”,“布尔值”);

    true:事件捕获

    false:事件冒泡

    removeEventListener();

    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="utf-8">
    <title>HTML事件处理</title>
    </head>
    <body>
    <div id="div">
    <button id="btn1" onclick="demo()">按钮</button>
    </div>
    <script type="text/javascript">
    var btn1=document.getElementById("btn1");
    btn1.addEventListener("click",demo1);
    btn1.addEventListener("click",demo2);
    function demo1(){
    alert("DOM2级事件处理01");
    }
    function demo2(){
    alert("DOM2级事件处理02");
    }

    //btn1.removeEventListener("click",demo2);//移除事件
    </script>
    </body>
    </html>

    (4)IE事件处理程序:(IE9版本之上)

    attachEvent

    detachEvent

    (5)事件适应浏览器

    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="utf-8">
    <title>HTML事件处理</title>
    </head>
    <body>
    <div id="div">
    <button id="btn1" onclick="demo()">按钮</button>
    </div>
    <script type="text/javascript">
    var btn1=document.getElementById("btn1");
    if (btn1.addEventListener) {
    btn1.addEventListener("click",demo);
    }else if(btn1.attachEvent){
    btn1.attachEvent("onclick",demo);
    }else{
    btn1.onclick=demo();
    }
    function demo(){
    alert("Hello!");
    }

    </script>
    </body>
    </html>

    (6)JavaScript事件对象:

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

    事件对象event:

    ①type:事件类型。

    ②target:事件目标。

    ③stopPropagation():阻止事件冒泡。

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

    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="utf-8">
    <title>HTML事件处理</title>
    </head>
    <body>
    <div id="div">
    <button id="btn1" onclick="demo()">按钮</button>
    <a href="http://www.baidu.com">百度</a>
    </div>
    <script type="text/javascript">
    var btn1=document.getElementById("btn1");
    btn1.addEventListener("click",show);
    document.getElementById("div").addEventListener("click",showDiv);
    document.getElementById("aid").addEventListener("click",showA);
    function showType (event) {
    // body...
    //alert(event.type);
    //alert(event.target);
    event.stopPropagation();//阻止事件冒泡
    }
    function showDiv(){
    alert("div");
    }
    function showA(event){
    event.stopPropagation();
    event.preventDefault();//阻止默认事件行为
    }
    </script>
    </body>
    </html>

  • 相关阅读:
    Log4Net 配置详解
    .Net Core 获取应用物理路径的常见问题
    Js/Jquery获取iframe中的元素
    Ztree树使用详解
    【解决】nginx + socket.io ,能连接但不响应事件
    基础文档官方链接
    位运算
    Java基础之集合框架--Collections.reverse()方法
    Android动画攻略—帧动画、补间动画、属性动画
    [转]京东mPaaS移动日志建设与应用
  • 原文地址:https://www.cnblogs.com/wuxn/p/4861947.html
Copyright © 2011-2022 走看看