• 关于DOM的事件操作


    JavaScript的组成

    三部分:

    • ECMAScript: JavaScript的语法标准,包括变量,表达式,运算符,函数,if语句,for语句
    • DOM: 文档对象模型,操作网页上元素的API,比如让盒子移动,变色,轮播图等
    • BOM: 浏览器对象模型,操作浏览器部分功能的API,比如让浏览器自动滚动

    事件

    JS是以事件驱动为核心的一门语言

    事件三要素

    事件源,事件,事件驱动程序

    比如,我用手去按开关,灯亮了。这件事情里,事件源是:手。事件是:按开关。事件驱动程序是:灯的开和关。

    再比如,网页上弹出一个广告,我点击右上角的X,广告就关闭了。这件事情里,事件源是:X。事件是:onclick。事件驱动程序是:广告关闭了

    于是我们可以总结出:谁引发的后续事件,谁就是事件源

    总结如下:

    • 事件源:引发后续事件的html标签。

    • 事件:js已经定义好了(见下图)。

    • 事件驱动程序:对样式和html的操作。也就是DOM

    因此,代码书写要分三步走:

    1. 获取事件源

    document.getElementById(“box”);

    2. 绑定事件

    box.onclick = function(){ 事件驱动程序 };
    //事件源.事件

    3. 书写事件驱动程序:关于DOM的操作(业务逻辑)

    具体代码实例:

    <div id="box" class="box">
            <div id="child">
    
            </div>
        </div>
        <script type="text/javascript">
            //1.获取事件源
            var div = document.getElementById("box");
            //2.绑定事件
            div.onclick = function () {
                //3.书写业务逻辑
                alert("我是弹出的内容");
            }

    常见事件

    获取事件源的方式(DOM节点的获取)

    var div1 = document.getElementById("box1");      //方式一:通过id获取单个标签
     
    var arr1 = document.getElementsByTagName("div1");     //方式二:通过 标签名 获得 标签数组,所以有s
     
    var arr2 = document.getElementsByClassName("hehe");  //方式三:通过 类名 获得 标签数组,所以有s 

    绑定事件的方式

    方式一:直接绑定匿名函数

    <div id="box" class="box">
            <div id="child">
    
            </div>
       </div>
        <script type="text/javascript">
            //1.获取事件源
            var div = document.getElementById("box");
            //2.绑定事件
            div.onclick = function () {
                //3.书写业务逻辑
                alert("我是弹出的内容");
            }
    
        </script>
    

    方式二:先单独定义函数,再绑定

    <div id="box1" ></div>
    
    <script type="text/javascript">
        var div1 = document.getElementById("box1");
        //绑定事件的第二种方式
        div1.onclick = fn;   //注意,这里是fn,不是fn()。fn()指的是返回值。
        //单独定义函数
        function fn() {
            alert("我是弹出的内容");
        }
    </script>
    

    方式三:行内绑定

    <!--行内绑定--> 
    <div id="box1" onclick="fn()"></div> 
    <script type="text/javascript"> 
        function fn() { 
            alert("我是弹出的内容"); 
    } 
    </script>    
    

      

    事件驱动程序

    <style>
       #box {
          100px;
         height: 100px;
         background-color: pink;
         cursor: pointer;
            }
    </style>
    </head>
    
    <body>
    
    <div id="box" ></div>
    
    <script type="text/javascript">
        var oDiv = document.getElementById("box");
        //点击鼠标时,原本粉色的div变大了,背景变红了
        oDiv.onclick = function () {
            oDiv.style.width = "200px";   //属性值要写引号
            oDiv.style.height = "200px";
            oDiv.style.backgroundColor = "red";   //属性名是backgroundColor,不是background-Color
        }
    </script>
    

    注意事项:

    • 在js里写属性值时,要用引号
    • 在js里写属性名时,是backgroundColor,不是CSS里面的background-Color。记得所有的像css属性的text-*,line-*、backgroun-*等在js中都写成驼峰

    onload事件

    当页面加载(文本和图片)完毕的时候,触发onload事件。

    <script type="text/javascript">
        window.onload = function () {
            console.log("哎哟不错哦,我是周杰伦");  //等页面加载完毕时,打印字符串
        }
        </script>
    

      

  • 相关阅读:
    sql server 2008数据库 降为 sql server 2005数据库 最终方案总结
    android 单元测试
    C# 5.0中引入了async 和 await
    Android之NDK开发
    Java NIO原理 图文分析及代码实现
    【第六篇】Volley之https相关
    【第五篇】Volley代码修改之图片二级缓存以及相关源码阅读(重写ImageLoader.ImageCache)
    【第四篇】Volley修改之GsonRequest
    java复习 --集合类
    android 图片加载优化,避免oom问题产生
  • 原文地址:https://www.cnblogs.com/--kai/p/9707813.html
Copyright © 2020-2023  润新知