WebApi入门第三章(事件介绍及注册事件 )

简介: WebApi入门第三章(事件介绍及注册事件 )

开关灯完整代码


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button>关灯</button>
    <script>
        // 需求:点击按钮:如果按钮是 关灯 将页面的背景色变黑,将开关变成 开灯;相反反着做即可
        /*
            思路分析
            1. 事件源:按钮 querySelector('button')
            2. 事件类型:点击事件 onclick
            3. 事件处理
            3.1 获取按钮的值:innerText
            3.2 获取body元素:querySelector('body') || document.body
            3.3 判定按钮的值
            * 关灯:背景色变黑,按钮的值变 开灯
            * 开灯:背景色变亮,按钮的值变 关灯
        */
        // 思路分析
        //     1. 事件源:按钮 querySelector('button')
        let btn = document.querySelector('button');
        // console.log(btn);
        //     2. 事件类型:点击事件 onclick
        btn.onclick = function () {
            //     3. 事件处理
            //     3.1 获取按钮的值:innerText
            // console.log(btn);
            let value = btn.innerText;
            //     3.2 获取body元素:querySelector('body') || document.body
            let body = document.body
            // console.log(body);
            //     3.3 判定按钮的值
            if (value == '关灯') {
                //     * 关灯:背景色变黑,按钮的值变 开灯
                body.style.backgroundColor = '#000';
                btn.innerText = '开灯';
            } else {
                //     * 开灯:背景色变亮,按钮的值变 关灯
                body.style.backgroundColor = ''
                btn.innerText = '关灯';
            }
        }
    </script>
</body>
</html>


事件介绍及注册事件


1.事件:js处理用户交互的一种机制

    交互:什么元素在什么时刻做什么事


2.事件的三要素:组成事件的三要素

事件源:什么元素(div)

事件类型:什么时刻(鼠标点击onclick 鼠标移入:onmouseover)

事件处理函数:做什么事(一段代码:函数)


3.注册事件:本质是给元素属性赋值

事件源.事件类型 = 事件处理函数

box.onclick = function(){}


4.事件工作原理

a.事件在注册的时候,不会执行(函数在声明的时候不会执行)

b.一旦元素注册事件之后,当用户触发了这个事件的时候,浏览器会自动捕捉到这个事件,然后帮我们调用元素对象的事件处理函数


5.页面中 任何元素 都可以注册 很多个事件(点击,移入等)


禁用/启用按钮小练习


 需求

       1. 点击启用按钮,所有 的input都可以使用:disabled = false


        2. 点击禁用按钮,所有 的input都不能使用:disabled = true


 

       /*
            禁用 思路分析
            1. 事件源: 禁用按钮 #jy
            2. 事件类型: 点击 onclick
            3. 事件处理
            3.1 获取所有input元素:querySelectorAll('input')
            3.2 遍历取出每个input
            3.3 给每个input 加上disabled属性 值为true
        */

 

效果图 :


启用

20210815211202868.png


禁用

20210815211245463.png


完整代码


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="text">
    <br>
    <input type="password">
    <br>
    <input type="radio">
    <br>
    <input type="checkbox">
    <br>
    <input type="button" value="表单按钮">
    <hr>
    <button id="qy">启用</button>
    <button id="jy">禁用</button>
    <script>
        // 需求
        // 1. 点击启用按钮,所有 的input都可以使用:disabled = false
        // 2. 点击禁用按钮,所有 的input都不能使用:disabled = true
        /*
            禁用 思路分析
            1. 事件源: 禁用按钮 #jy
            2. 事件类型: 点击 onclick
            3. 事件处理
            3.1 获取所有input元素:querySelectorAll('input')
            3.2 遍历取出每个input
            3.3 给每个input 加上disabled属性 值为true
        */
        let jy = document.querySelector('#jy');
        let qy = document.querySelector('#qy');
        // 点击事件onclick
        jy.onclick = function () {
            //禁用所有input  
            // console.log(jy);点击jy就是禁用
            // 因为要点击禁用就禁用所有input所以用forEach遍历数组
            let inputs = document.querySelectorAll('input');
            inputs.forEach(function (inem) {
                // console.log(inem);
                // 禁用是disable
                inem.disabled = true
            })
        }
        qy.onclick = function () {
            //禁用所有input  
            // console.log(jy);点击jy就是禁用
            // 因为要点击禁用就禁用所有input所以用forEach遍历数组
            let inputs = document.querySelectorAll('input');
            inputs.forEach(function (inem) {
                // console.log(inem);
                // 禁用是disable
                inem.disabled = false;
            })
        }
    </script>
</body>
</html>
相关文章
|
3月前
|
存储 前端开发 JavaScript
PixiJS源码分析系列:第四章 响应 Pointer 交互事件(上篇)
PixiJS源码分析系列:第四章 响应 Pointer 交互事件(上篇)
|
前端开发
前端学习笔记202305学习笔记第二十五天-事件注册和调用
前端学习笔记202305学习笔记第二十五天-事件注册和调用
38 0
|
6月前
|
小程序
Uniapp 解决组件在官方文档不支持的事件上,接收小程序原生组件事件
Uniapp 解决组件在官方文档不支持的事件上,接收小程序原生组件事件
105 0
|
JavaScript 索引
WebApi入门第十二章(原生轮播图 )(完结)
WebApi入门第十二章(原生轮播图 )(完结)
118 0
WebApi入门第十二章(原生轮播图 )(完结)
|
XML 小程序 前端开发
微信小程序学习笔记(2) -- 逻辑层事件、常用组件
微信小程序学习笔记(2) -- 逻辑层事件、常用组件
150 0
微信小程序学习笔记(2) -- 逻辑层事件、常用组件
|
C++ Windows 定位技术
16、深入浅出MFC学习笔记,事件与消息
一、基本概念 1、Windows程序的本质是基于消息的事件驱动。 Windows程序分为程序代码和UI资源两大部分。如图所示,资源的实际内容是二进制代码,借助各种工具产生。 在32位操作系统中不再有small/medium/large等内存模式之分。
912 0
|
JavaScript 前端开发 Java
前端基础四之JavaScriptDOM与事件
前端基础四之JavaScriptDOM与事件
132 0
前端基础四之JavaScriptDOM与事件
|
小程序 API
开发技巧 | mPaaS 小程序自定义事件,如何取消注册?
在我们开发 mPaaS 小程序的过程中,如果已有小程序 API 或事件无法满足开发需求,您也可以自行扩展。
6472 0
开发技巧 | mPaaS 小程序自定义事件,如何取消注册?