• JavaScript DOM级事件


    DOM0 级事件

    缺点:虽然实现了内容与行为相分离,但是元素仍然只能绑定一个监听函数

    演示代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <input type="button" value="点啊" id="input">
    <script>
        var obj = document.getElementById('input');//id为input的标签
        obj.onclick = function () {//将这个按钮绑定点击事件如果点击就执行以下内容
                console.log('你好呀!我是DOM0级事件');//控制台弹出此文字
            function fun() {//定义一个函数
                console.clear();//清空控制台里面的内容
            }
        setTimeout(fun,1000);//1000毫秒也就是一秒之后清空控制台的内容
        }
    </script>
    </body>
    </html>
    

    n

    DOM2级事件

    通过两个函数来给对象添加和删除处理程序,
    分别是addEventListener()和removeEventListener();
    它们都有三个参数:

    1. 要处理的事件名,
    2. 事件处理程序(函数名),
    3. 一个布尔值,true表示在捕获阶段触发,fasle表示在冒泡阶段触发。但为了兼容性没什么必要就选择冒泡阶段触发。

    演示代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <input type="button" value="点啊" id="input">
    
    <script>
        var obj = document.getElementById('input');//id为input的标签
        obj.funclick = function () {
            console.log('你好呀!我是DOM2级事件');
        };
        obj.addEventListener('click',obj.funclick,false);//在冒泡阶段处理点击事件
        obj.removeEventListener('click',obj.funclick,false);
    </script>
    </body>
    </html>
    注意:removeEventListener()的参数必须与addEventListener()一致,否则就会失败
    所以处理程序不要使用无名函数
    就像这样:obj.addEventListener('click',function(){},false); 
    添加后,虽然可以添加成功,但是却无法移除  
    

    aa

    事件对象

    在触发DOM事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息,包括导致事件的元素、事件的类型以及其他与特定事件相关的信息。例如,鼠标事件对象中会包含鼠标位置信息,而键盘事件对象中,会包含按键信息等等。触发事件时,产生的事件对象会作为参数传给处理程序
    代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <input type="button" value="点啊" id="input">
    
    <script>
            var obj = document.getElementById('input');//id为input的标签
            obj.onmouseover = function (e) {
                console.log(e);              //参数e是事件对象,包含了事件相关的各种信息
            }
            //如果要在一个元素对象上处理不同的事件就要用type来处理
            obj.onclick = function (e) {
                switch (e.type) {
                    case 'click':console.log('click');break;
                    case 'mouseover':console.log('mouseover');break;
                }
            }
    </script>
    </body>
    </html>
    

    m

    还有一个十分重要的事件

    //文档加载完毕事件(只响应一次)
    window.onload = function(){
        //文档加载完了之后在操作DOM,就会避免在DOM加载完之前就执行相关代码而失败的问题
    }
    

    鼠标、键盘事件

    代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            div{
                border: 1px solid red;
                 100px; height: 100px;
            }
        </style>
    </head>
    <body>
    <div>我是div</div>
    <input type="text" value="" id="input">
    
    <script>
        window.onload = function () {
            var btn = document.getElementsByTagName('div')[0];
            btn.onmouseover = function(e){
                //鼠标在div区域内悬停事件
                //事件对象e中保存了事件相关的信息
                e.buttons; //区分按的是鼠标左键,还是右键等
                console.log(e);
            }
            //键盘事件
            var text = document.getElementsByTagName('input')[0];
            text.onkeypress = function ( e ){
                //按键(onkeypress不会响应ctrl,alt,shift,win等按键onkeydown可以响应)响应处理
                e.key; //按键的字符
                // e.keyCode; //按键的虚拟键码
                console.log(e);//打印事件对象e中的内容
                console.log("你按下的是键盘上的",e.key,"键");//打印用户按下了哪个键
    
            }
        }
    
    </script>
    </body>
    </html>
    

    p

  • 相关阅读:
    linux file命令小记
    利用actionscript访问wfs服务
    在C/C++中static有什么用途?(请至少说明两种)
    单元测试、集成测试、系统测试的侧重点是什么?
    测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?
    简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试&#160;β测试
    一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
    BUG管理工具的跟踪过程(用BugZilla为例子)
    软件测试分为几个阶段&#160;各阶段的测试策略和要求是什么?
    软件质量保证体系是什么&#160;国家标准中与质量保证管理相关的几个标准是什么?他们的编号和全称是什么?
  • 原文地址:https://www.cnblogs.com/Lay0us/p/12073664.html
Copyright © 2020-2023  润新知