JavaWeb JavaScript ⑥ 事件

news2024/9/28 3:31:25

你摸黑偷偷赶得路,都会变成意外来袭时你少受的苦

                                                                        —— 24.8.29

一、什么是事件

HTML 事件可以是浏览器行为,也可以是用户行为。
当一些行为发生时,可以自动触发对应的JS函数的运行,我们称之为事件发生,JS的
件驱动
指的就是行为触发代码运行的这种特点

二、事件的绑定方式

① 通过元素的属性绑定 on ***

② 通过DOM编程动态绑定

注意:一个事件可以同时绑定多个函数

三、常见事件

1.鼠标事件

① onmouseover —— 鼠标悬停

② onmousemove —— 鼠标移动

③ onmouseleave —— 鼠标离开

④ onclick —— 单击

⑤ ondblclick —— 双击

2.键盘事件

① onkeydown —— 键盘的按下

② onkeyup —— 键盘的开启

3.表单事件

① onfocus —— 获取焦点事件

② onblur —— 失去焦点事件

③ onsubmit —— 表单提交事件

④ onreset —— 表单重置事件

4.页面加载事件

onload

5.常见事件演示代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=, initial-scale=1.0">
    <title>Document</title>
    <script>
        function myFunction1() {
            console.log('你单击了按钮1!')
        }

        function myFunction2() {
            console.log('你点击了按钮2!')
        }

        function myFunction3() {
            console.log('你双击了按钮3!')
        }   

        function myFunction4() {
            console.log('你按下了回车键!')
        }

        function myFunction5() {
            console.log('你按下了Esc键!')
        }   

        function myFunction6() {
            console.log('你按下了空格键!')
        }   

        function myFunction7() {
            console.log("鼠标悬停了!")
        }

        function myFunction8() {
            console.log("鼠标移出了!")
        }

        function myFunction9() {
            console.log("鼠标移动了!")
        }

        function myFunction10() {
            console.log("键盘按下了!")
        }

        function myFunction11() {
            console.log("键盘松开了!")
        }

        /*
            1.事件的绑定方式
                ① 通过元素的属性绑定 on***
                ② 通过DOM编程动态绑定
                注意事项:一个事件可以同时绑定多个函数

            2.常见的事件
                ① 鼠标事件 onmouseover(鼠标悬停)、onmousemove(鼠标移动)、onmouseleave(鼠标离开)、onclick(单击)、ondblclick(双击)
                ③ 键盘事件 onkeydown(键盘的按下)、onkeyup(键盘的开启)、onkeypress(某个键盘按键被按下并松开)
                ③ 表单事件 onfocus(获取焦点事件)、onblur(失去焦点事件)、onsubmit(表单提交事件)、onreset(表单重置事件)
                ④ 页面加载事件 onload

            3.事件的触发
                ① 行为触发
                ② DOM编程触发
        */

        function testFocus() {
            console.log("获取焦点了!")
        }

        function testBlur() {
            console.log("失去焦点了!")
        }

        function testSubmit() {
            console.log("提交了!")
        }

        function testChange(value) {  
            console.log("内容改变为:"+value)
        }

        function testChange2(){
            console.log("选项改变了!")
        }

        function testSubmit(){
            /*
            弹窗的三种方式
            alert("表单发生提交了!");  信息提交框
            confirm("你确定要提交吗?")     信息确认框
            prompt("请输入你的评论:")      信息输入框
            */
           var result = confirm("你确定要提交吗?");
           if(result){
               alert("表单发生提交了!");
           }else{
               alert("表单未提交!");
               event.preventDefault();// 阻止组件的默认提交行为,可以动态选择
           }
        }

        function testReset(){
        console.log("表单重置了!")
        }    
    </script>


</head>
<body>
    <!-- 鼠标事件 -->
    <input 
        type="button"
        value="按钮"
        onclick="myFunction1(), myFunction2()"
        ondblclick="myFunction3()"
    >
    <br>

    <!-- 键盘事件 -->
    <img src="img/夕阳.jpg" onmouseover="myFunction7()" onmouseout="myFunction8()" onmousemove="myFunction9()">
    <br>
    <input type="text" onkeydown="myFunction10()" onkeyup="myFunction11()">
    <br>

    <!-- 表单事件 -->
    <form action="01JS引入方式.html" method="get" onsubmit="return testSubmit()" onreset="testReset()">
        用户昵称:<input 
            type="text" 
            name="realName" 
            onfocus="testFocus()"
            onblur="testBlur()"
            onchange="testChange(this.value)"
            > <br>
        登陆账号:<input 
            type="text" 
            name="logoinName"
            onfocus="testFocus()"
            onblur="testBlur()"
            onchange="testChange()"
        ><br>
        选择籍贯:
        <select 
            name="province"
            onchange="testChange2()">
            <option value="北京">北京</option>
            <option value="上海">上海</option>
            <option value="广州">广州</option>
        密码:<input 
            type="password" 
            name="password"
            onfocus="testFocus()"
            onblur="testBlur()"
            onchange="testChange()"
            ><br>
        <input 
            type="submit" 
            value="注册"
            >
        <input 
        type="reset" 
        value="重置">
        <br>
</body>
</html>

四、事件的触发

1.行为触发

2.DOM编程触发

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        /*
            1.事件的绑定方式
                ① 通过元素的属性绑定 on***
                ② 通过DOM编程动态绑定
                注意事项:一个事件可以同时绑定多个函数

            2.常见的事件
                ① 鼠标事件 onmouseover(鼠标悬停)、onmousemove(鼠标移动)、onmouseleave(鼠标离开)、onclick(单击)、ondblclick(双击)
                ③ 键盘事件 onkeydown(键盘的按下)、onkeyup(键盘的开启)、onkeypress(某个键盘按键被按下并松开)
                ③ 表单事件 onfocus(获取焦点事件)、onblur(失去焦点事件)、onsubmit(表单提交事件)、onreset(表单重置事件)
                ④ 页面加载事件 onload (页面加载完成事件)、onunload(页面卸载事件)

            3.事件的触发
                ① 行为触发
                ② DOM编程触发
        */
    </script>    

    <script>
        function ready(){
            // 通过DOM获得要操作的元素
            var btn = document.getElementById("btn1");
            // 绑定一个单击事件,直接声明一个函数
            btn.onclick = function(){
            alert("按钮被单击了!");
            }
        }

        window.onload = function(){
            // 为div1绑定单击事件,单击变红
            var div1 = document.getElementById("d1");
            div1.onclick = function(){
                div1.style.backgroundColor = "red";
            }

            // 通过DOM获得要操作的元素
            var btn = document.getElementById("btn1");
            // 绑定一个单击事件,直接声明一个函数
            btn.onclick = function(){
                alert("按钮被单击了!");
                // 通过DOM编程动态绑定一个事件,相当于某些事件被触发了
                div1.onclick();     // 触发div的单击事件
            }
        }

    </script>

    <style> 
        .div1{
            width: 100px;
            height: 100px;
            background-color: yellow;
        }
    </style>
</head>
<body>
    <div id="d1" class="div1">

    </div>
    <button id="btn1">按钮</button>
</body>
<!-- 
<body onload="ready()">
    <button id="btn1">按钮</button>
</body> 
-->
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2089181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vatee万腾平台:打造企业智能化转型的坚实后盾

在当今这个日新月异的数字化时代&#xff0c;企业智能化转型已成为不可逆转的趋势。面对激烈的市场竞争和快速变化的市场需求&#xff0c;如何高效、稳定地完成这一转型&#xff0c;成为众多企业亟需解决的问题。而Vatee万腾平台&#xff0c;正是这样一位引领企业智能化转型的坚…

github源码指引:C++嵌入式WEB服务器

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 相关专题&#xff1a; C嵌入式…

C# opencv识别二维码

新建桌面程序 安装opencvsharp 拖拽设计页面 选择图片识别代码 using OpenCvSharp; using System.Text;namespace QRcodeIdentity {public partial class Form1 : Form{public Form1(){InitializeComponent();}/// <summary>/// 选择图片/// </summary>/// <pa…

STM32——Flash闪存

以上部分&#xff0c;主存储器&#xff1a;程序存储器&#xff1b; 启动程序代码&#xff1a;系统存储器&#xff1b; 用户选择字节&#xff1a;选项字节 以下是闪存的管理员&#xff0c;用于擦除和读写的地址 C8T6一共64K&#xff0c;主存储器为64页 以下是整体框图&#x…

【数据库|第10期】SQL Server、Access和Sqlite 的表别名详解

日期&#xff1a;2024年8月28日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对的地方&#xf…

视频云流化与PaaS平台解决方案详细介绍

一、什么是视频云流化&#xff1f; 视频云流化&#xff08;Video Cloud Transcoding&#xff09;是一种将视频文件转换为适用于流媒体传输的不同格式和码率的过程。它是云计算和流媒体技术的结合&#xff0c;通过利用云平台的计算和存储资源&#xff0c;将视频内容转码为适应不…

什么是时钟偏差—Clock Skew?理解时钟分配网络中的时钟偏差

了解时钟偏差是什么,以及它如何通过理解同步电路、时钟传递和时钟分配网络对现代系统产生影响。 现代数字电子设计的最大挑战之一是能够满足时序约束。在数字电路中,保持可预测且组织良好的操作逻辑流的一种方法是进行精确控制和明确定义时序。 时钟偏差是这些电路设计中需…

Scratch教学案例-《三顾茅庐》:让编程学习如同故事般引人入胜

三顾茅庐-小虎鲸Scratch资源站 在编程的世界里&#xff0c;我们常常寻找那种既能激发创意&#xff0c;又能提升技能的学习方式。今天&#xff0c;小虎鲸Scratch资源站为您带来了一款独特的教学作品——《三顾茅庐》。这是一部将经典故事与编程教学巧妙结合的Scratch项目&#x…

.NET 8.0 前后分离快速开发框架

目录 前言 项目介绍 功能特点 适用范围 内置功能 项目技术 1、前端技术 2、传送门 3、后端技术 项目结构 项目效果 项目地址 最后 前言 大家好&#xff0c;推荐一个.NET 8.0 为核心&#xff0c;结合前端 Vue 框架&#xff0c;实现了前后端完全分离的设计理念。它不…

【Python机器学习】NLP词频背后的含义——隐性狄利克雷分布(LDiA)

目录 LDiA思想 基于LDiA主题模型的短消息语义分析 LDiALDA垃圾消息过滤器 更公平的对比&#xff1a;32个LDiA主题 对于大多数主题建模、语义搜索或基于内容的推荐引擎来说&#xff0c;LSA应该是首选方法。它的数学机理直观、有效&#xff0c;它会产生一个线性变换&#xff…

进程间通信--IPC机制

今天主要讲述独立的进程之间的通信&#xff0c;我们知道&#xff0c;进程是一个完整代码的执行过程&#xff0c;那么我们想实现在进程运行的过程之中传递信息或者是发送数据&#xff0c;就是通过IPC机制来完成。 一、什么是IPC机制 IPC&#xff1a;inter process communication…

文件泄密?不存在的!一文读懂文件防泄密最新五个小妙招

在当今信息化时代&#xff0c;企业数据的安全性显得尤为重要。文件泄密事件频发&#xff0c;不仅会给企业带来巨大的经济损失&#xff0c;还可能损害企业的声誉。因此&#xff0c;如何有效防止文件泄密成为了企业管理中的重中之重。本文将为大家介绍最新的五个防泄密妙招&#…

vue大数据展示之虚拟列表

面试代码学习 父组件&#xff1a; <template><div class"box"><!--items总条数、 size数据高度、 shownumber每次渲染数据--><list :items"items" :size"60" :shownumber"10"></list></div><…

要实现主动元数据,关键技术在算子级血缘解析

主动元数据管理最早被 Gartner 在 2016 年提出&#xff0c;在 2022 年 Gartner 公布的顶级战略技术趋势中&#xff0c;主动元数据被认为是实现 Data Fabric&#xff08;数据编织&#xff09;和主动数据治理的基石&#xff0c;也是实现 Data Fabric 的关键能力 。在这份技术趋势…

全面解析:动态住宅代理的关键优势

在大数据时代的背景下&#xff0c;代理IP成为了很多企业顺利开展的重要工具。代理IP地址可以分为住宅代理IP地址和数据中心代理IP地址。选择住宅代理IP的好处是可以实现真正的高匿名性&#xff0c;而使用数据中心代理IP可能会暴露自己使用代理的情况。 住宅代理IP是指互联网服务…

关于springboot的Rest请求映射处理的源码分析(二)

前面我们知道了他怎么处理表单映射&#xff0c;这里我们来研究一下&#xff0c;他是如何处理具体请求的。也就是说我有那么多/user你是怎么定位到我在哪个cotroller&#xff0c;并且你是怎么定位到我具体是哪个接口。 这里我们就来逐步定位一下这个问题。 一、组件分析 老路子…

Nacos 部分漏洞整理

免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 1. Naco简介 微信公众号搜索:南风漏洞复现文库 该文…

element中 el-input 不更新的问题

需要在上面输入数字,下面一列都更改成一样的数字 batchChange(list,field,value){console.log(list,field,value);list.forEach((i,index) > {i[field]value;this.$set(list,index, JSON.parse(JSON.stringify(i)));});} 用 JSON.parse(JSON.stringify(i)) 转一下后,就可以…

langchain入门系列之八 langgraph多agent示例

在之前的文章中我们介绍了langgraph&#xff0c;并且用它做了一个小小的示例&#xff0c;在本文中&#xff0c;我们将使用智普清言来构建多agent 系统。百度千帆对langgraph支持较差(尤其是强制要求奇数偶数的role设置&#xff0c;传入messages的奇数偶数要求&#xff0c;让人有…

用好外呼机器人,帮助企业提升客户管理效率

外呼机器人&#xff0c;作为现代科技与企业管理的结合体&#xff0c;正在企业客户管理领域掀起革命性的变化。随着人工智能技术的不断进步&#xff0c;外呼机器人不仅实现了自动化呼叫&#xff0c;还能根据客户的语音情感进行相应的反馈和操作&#xff0c;极大地提高了客户满意…