JS--JavaScript事件处理基础、事件模型、事件流(冒泡型、捕获型、混合型)、绑定事件(静态绑定和动态绑定)、事件处理函数

Matplotlib图片尺寸调整全攻略:从figsize到savefig的实战技巧 在数据可视化与科学计算中,图形尺寸控制是影响图表可读性与专业度的基础环节。其核心原理在于协调逻辑尺寸(英寸)与物理输出(像素)的映射关系,这直接决定了信息呈现的清晰度与布局合理性。从技术价值看,精准的尺寸控制能提升图表在不同媒介(如学术论文、报告、网页)中的适配性,避免显示不全、模糊失真等常见问题。在应用场景上,无论是Jupyter Notebook中的交互探索、自动化报告的批量生成,还是满足严格出版要求的插图制作,都需要掌握对应的尺寸调整策略。本文聚焦于matplotlib中的figsize参数、rcPa 阅读详情
JavaScript事件基础

JavaScript与用户之间的交互是通过事件驱动来实现的,事件驱动是面向对象程序设计的重要概念,其核心就是以消息为基础、以事件来驱动(message based, event driven)。当网页对象发生特定事件时,浏览器会自动生成一个事件对象(Event),事件对象通常会沿着DOM节点进行传播,知道被脚本捕获。如果为事件绑定响应程序(事件处理函数),浏览器就会调用该事件处理函数,执行其中的代码,完成预定任务。

事件模式

在浏览器发展历史中,出现4种事件处理模型

  • 基本事件模型
    也成为DOM 0 事件模型,是浏览器初期出现的一种比较简单的事件交互方式,主要通过事件属性,为指定标签绑定事件处理函数。由于这种交互方式应用比较广泛,获得了所有浏览器的支持,目前任然比较流行。但是这种模型对于HTML文档严重依赖,不利于JavaScript独立开发。

  • DOM事件模型
    由W3C制定,是目前标准的事件处理模型。所有符合标准的浏览器都支持该模型,IE怪异模式不支持。DOM事件模型包括DOM2事件模块和DOM3事件模块,DOM3事件模块为DOM2事件模块的升级版,略有完善,主要是新增了一些事情类型,以适应移动设备的开发需要,但大部分规范和用法保持一致。

  • IE事件流
    IE4.0 及其以上版本浏览器支持,与DOM事件模型相似,但用法不同

  • Netscape事件模型
    由Netscape4浏览器实现,在Netscape6中停止支持

事件流

事件流就是多个节点对象对同一种事件进行响应的先后顺序,主要包括3种类型。

  • 冒泡型:
    事件从最特定的目标向最不特定的目标(document对象)触发,也就是事件从下向上进行响应,这个传递过程被形象的称为冒泡

  • 捕获型:
    事件从最不特定的目标(document对象)开始触发,然后到最特定的目标,也就是事件从上向下进行响应

  • 混合型:
    W3C的DOM事件模型支持捕获型和冒泡型两种事件流,但是捕获型事件流先发生,然后才发生冒泡型事件流。两种事件流会触及DOM种的所有层级对象,从document对象开始,最后返回document对象结束。

根据事件流类型,可以把事件传播的整个过程分为3个阶段:

  • 捕获阶段:事件从document对象沿着文档树向下传播到目标节点,如果目标节点的任何一个上级节点注册了相同事件,那么事件在传播过程种就会首先在最接近顶部的上级节点执行,依次向下传播。
  • 目标阶段:注册在目标节点上的事件被执行
  • 冒泡阶段:事件从目标节点向上触发,如果上级节点注册了相同的事件,将会逐级响应,依次向上传播
绑定事件

在基本事件模型中,JavaScript支持两种绑定方式。

1. 静态绑定:
把JavaScript脚本作为属性值,直接赋予给事件属性

<button onclick="alert(‘你单击了一次!’);">按钮</button>

2. 动态绑定:
使用DOM对象的事件属性进行赋值。

<button id="btn">按钮</button>
<script>
	var button = document.getElementById("btn");
	button.onclick = function(){
		alert('你单击了一次!');
	}
</script>
事件处理函数

事件处理函数是一类特殊的函数,主要任务是实现事件处理,为异步调用,由事件触发进行响应。

事件处理函数一般没有明确的返回值,不过在特定事件中,用户可以利用事件处理函数的返回值影响程序的执行,如单击超链接时,禁止默认的跳转行为。

示例:为按钮对象绑定一个单击事件。在事件处理函数中,参数e为形参,响应事件之后,浏览器会把event对象传递给形参变量e,再把event对象作为一个实参进行传递,读取event对象包含的事件信息,在事件处理函数中输出当前源节点名称

<button id="btn">按钮</button>
<script>
var button = document.getElementById("btn");
button.onclick = function(){
	var e = e || window.event;
	document.write(e.srcElement ? e.srcElement : e.target);
}
</script>

注意:IE事件模型和DOM事件模型对于event对象的处理方式不同:

  • IE把event对象定义为window对象的一个属性
  • DOM事件模型把event定义为事件处理函数的默认参数
【OpenClaw企业级智能体实战】第09篇:OpenClaw金融投研实战:17个场景+完整代码,打造专属数字研究员 金融投研面临信息过载、流程重复、数据安全合规三大核心痛点,OpenClaw作为本地部署的新一代AI智能体,凭借“长期记忆+主动执行+数据不出域”的优势,成为券商分析师集体追捧的效率工具。本文基于8家头部券商公开研报,拆解OpenClaw在金融投研的17个核心应用场景(信息处理、研报撰写、量化策略、流程自动化),详解原理、技术选型、实操流程,并提供可直接运行的完整代码与执行结果。文章兼顾新手入门与进阶提升,强调安全隔离部署与幻觉防范,读者可按步骤搭建专属投研智能体,将信息处理、数据整理等重复工作效率提升80% 阅读详情

相关推荐

合宙Air780EP速连OneNET:AT+MQTT应用指南

本文详细讲解了合宙Air780EP使用AT指令通过MQTT接入OneNET的过程。

2401_82812461的博客 1389

js 动态绑定事件和静态绑定事件的区别

静态绑定事件 <button name="xxx" code="222" id="yuanEvent" onclick="pp(this,event)">事件监听</button> 要传递this,代表当前DOM 节点 最多只能绑定一个事件 标签绑定唯一的优点是一眼就能看出什么元素绑定了事件,标签绑定不符合行为与结构分离的原则 动态绑定事件 document.add...

黄彪博客 3636

Flow Matching实战:5步搞定图像生成模型优化(附PyTorch代码)

本文提供了一份基于Flow Matching框架优化图像生成模型的实战指南。通过五个关键步骤,详细讲解了从环境配置、核心概念梳理到构建向量场网络、设计损失函数、编写训练循环以及选择ODE求解器进行采样的完整流程,并附有可运行的PyTorch代码,帮助开发者快速掌握这一高效的生成式建模技术。

weixin_29065959的博客 322

JavaScript 提交表单的三种绑定(动态绑定,行内绑定,监听绑定)

提交表单的三种绑定 1.动态绑定:通过代码将事件处理函数与特定的事件关联起来的过程 2.行内绑定:在 HTML 元素的属性中直接嵌入 JavaScript 代码 3.监听绑定:通过监听器与特定的事件关联起来的过程

软件测试、JAVA、JavaScript、C++等 2651

避开PSRR仿真三大坑:用Cadence psspxf分析分频器时,这些设置错了白忙活

本文深入探讨了使用Cadence psspxf工具进行分频器PSRR仿真时常见的三大技术陷阱,包括扰动信号参数设置、收敛性优化和后处理信号提取。通过详细的参数推荐和实战技巧,帮助工程师避免仿真误差,提升PSRR分析效率与准确性,特别适用于16分频器等数字-模拟混合电路设计。

weixin_29258297的博客 301

大模型学习笔记四:LangChain开发框架解析

1、模型I/O封装LLMs:大语言模型Chat Models:一般基于LLMs,但按对话结构重新封装PromptTemple:提示词模板OutputParser:解析输出2、数据连接封装Document Loaders:各种格式文件的加载器Document transformers:对文档的常用操作,如:split,filter,translate,extract metadata,etcTextr Embedding Models:文本向量化表示,用于检索等操作。

谢白羽 4284

浅谈js的事件机制,事件冒泡、事件捕获、事件代理(事件委托)

当你点击粉色的时候,首先会触发蓝色,然后再触发粉色(虽然绑定了两个事件,但是由于使用了event.stopImmediatePropagation()方法,所以就不会触发粉色盒子的其他事件了)。至于绿色不触发,是由于为粉色添加了阻止事件传播,所以不会向外层继续传播事件,也就是说绿色的是不会触发的。当你点击粉色的时候,首先会触发蓝色,然后再触发粉色(绑定了两个事件,就会打印两条数据)。至于绿色不触发,是由于为粉色添加了阻止事件传播,所以不会向外层继续传播事件,也就是说绿色的是不会触发的。

ajaxsync 1457

基于Opencv+Mediapipe的头部姿态检测

在学生课堂专注度检测项目中,可以通过学生头部姿态来确定学生注意力方向,从而判断其是否专注于课堂。

weixin_67879842的博客 2335

js的动态绑定事件和静态绑定事件的this的指向

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" charset="utf8" src="jquery-3.2.1.min.js"></script> </head> <body> <

3441

【SimPy系列博客之官方example学习与解读】—— Example 1: Bank Renege

Hello,优快云的各位小伙伴们,拖更了几年后,又重新开始记录这段时间准备学习的东西啦!最近博主在学习 SimPy 的相关知识,发现国内关于 SimPy 的介绍还是相对较少,且缺乏系统性,因此博主打算用1~2周的时间,边学边记,打算从 SimPy 官方给出的几个例子出发分析 SimPy 的使用场景和用法,希望能和大家互勉!那废话不多说,我们直接开始吧!今天要学习的例程是 Bank Renege。

凝望,划过星空的博客 2009

论文阅读--射频电源在半导体领域的应用

射频电源(RF Power Supply)是能够输出300kHz~300GHz正弦波电压的高频交流电源,在半导体制造领域,射频电源的典型工作频率范围为400kHz∼60 MHz,主要由射频发生器(功率源)、匹配器及配套控制电路组件构成,其关键组件包括变压器与电抗器、晶闸管、绝缘栅双极型晶体管(IGBT)、钣金件、铜材及各种电子元器件。射频电源是刻蚀和薄膜沉积工艺的核心,主要用于产生等离子体,以增强气体反应活性,其性能直接影响反应腔体内等离子体的浓度、均匀性和稳定性。

伊丽莎白的学习之路 2337

JavaScript动态绑定事件

什么是动态绑定事件? js最突出优点在于能动态修改页面样式和动态修改页面内容,然而在我们开发过程中,将动态添加的元素中绑定事件的现象称为动态绑定事件。 动态绑定无法触发js的案例? &lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;&lt;/title&gt; &lt;/head&gt; &lt;

聂辉的博客 1893

YOLOv13改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计

实时检测器架构的轻量级设计GsConv。

Limiiiing的博客 91

JS事件处理这一篇就够了!!

文章目录事件处理事件基础事件流绑定事件事件处理函数注册事件销毁事件使用event对象事件委托使用鼠标事件鼠标点击鼠标移动鼠标经过鼠标来源鼠标定位鼠标按键使用键盘事件键盘事件属性键盘响应顺序使用页面事件页面初始化结构初始化页面卸载窗口重置页面滚动错误处理使用UI事件焦点处理选择文本字符值变化检测提交表单重置表单 事件处理 早期互联网访问速度是非常慢的,为了避免用户漫长的等待,开发人员尝试把服务器端需要处理的任务部分前移到客户端,让客户端js脚本代替解决,如表单信息验证等。于是在IE3.0和Netscape2.

weixin_46351593的博客 851

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

JavaScript事件处理

事件模型、事件流、绑定事件、鼠标/键盘/页面监控

码说芯语的博客 636

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

6-JavaScript操作事件

前言 事件是JavaScript最鲜明的特性,JavaScript以事件驱动实现页面交互,当事件发生时,浏览器会自动调用事件处理函数,同时生成事件对象,传递给事件处理函数。 【学习要点】 了解事件模型、事件流、事件类型 能够正确注册事件、销毁事件 能够自定义事件 1 事件基础 1.1 事件流 事件流是多个节点对同一种事件进行响应的先后顺序,主要包括: 1、冒泡型 2、捕获型 3、混合型(支持冒泡型和捕获型两种事件流) 根据事件流类型,可把事件传播的整个过程分为3个阶段: 捕获阶段 事件从docu

weixin_43515797的博客 260

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Javascript学习——事件处理

一、事件基础 (1)事件类型 1、冒泡型 事件从最特定的目标向最不特定的目标(documentx对象)触发,也就是事件从下向上进行响应,这个传递过程被形象地称为冒泡2、捕获型 事件从最不特定的目标(document>对象)开始触发,然后到最特定的目标,也就是事件从上向下进行响应。3、混合型 W3C的DOM事件模型支持捕获型和冒泡型两种事件流,但是捕获型事件流先发生,然后才发生冒泡型事件流。两种事件流会触及DOM中的所有层级对象,从document对象......

qq_57985179的博客 262

JS笔记(事件处理)

一、事件基础 1、事件模型 在浏览器的发展历史中,出现4种事件处理模型 基本事件模型,DOM事件模型,IE事件模型,netscape事件模型 2、事件流 冒泡型,捕获型,混合型 3、绑定事件 在基本事件模型中,JavaScript支持两种绑定方式:;静态绑定和动态绑定 4、事件处理函数 事件处理函数是一类特殊的函数,与函数直接量结构相同,为异步调用。 5、注册事件 在DOM事...

APieceOfBullshit 407

JavaScript 事件监听(事件绑定和常见事件)

JavaScript 事件监听(事件绑定和常见事件)

阿博的博客 873

js的事件

js 事件:客户端的某个动作行为的瞬间 on+click(事件类型) 鼠标事件: 鼠标点击: onclick 鼠标双击: ondbclick 鼠标移入: onmouseover: onmouseenter: 鼠标移出: onmouseout: onmouseleave: 右键右击: oncontextmenu: 键盘事件: 按键按下: onkeydown 按键抬起: onkeyup 表单事件: ...

m210516的博客 512

浏览器事件模型

浏览器事件模型 浏览器事件模型中的过程主要分为三个阶段:捕获阶段、目标阶段、冒泡阶段。 addEventListener的第三个参数, 如果为true,就是代表在捕获阶段执行。如果为false, 就是在冒泡阶段进行 window.addEventListener("click", function (e) { console.log("window 捕获", e.target.nodeName, e.currentTarget.nodeName); }, true); window.addEven

窄门狭路的博客 587

JAVA(学习笔记1.2)——事件处理模型

当用户与GUI组件交互时会引发一个系统预先定义好的事件(鼠标移动,点选按钮,文本输入等),GUI由这些事件驱动。GUI事件是一个从java.awt.event.AWTEvent类扩展的某个子类对象 下图所示为java.awt.event中的事件类结构: 一 JAVA中事件处理模型 (1)事件源:是用户交互的各种GUI组件 (2)事件对象(Eventobject)...

Carol_kit的博客 1286

静态绑定与动态绑定

研究问题: https://www.cnblogs.com/ygj0930/p/6554103.html 要点: 一:绑定   把一个方法与其所在的类/对象 关联起来叫做方法的绑定。绑定分为静态绑定(前期绑定)和动态绑定(后期绑定)。    二:静态绑定   静态绑定(前期绑定)是指:在程序运行前就已经知道方法是属于那个类的,在编译的时候就可以连接到类的中,定位到这个方法。 ...

SunshineBoy的博客 1万+

js中事件捕获和事件冒泡(事件流)

其实不仅在js中,在面向对象的编程语言中或多或少涉及到这个问题。js编程的事件全解,你可以到我的主页,这里给你重点讲一下js中的事件捕获和事件冒泡。 事件捕获和冒泡的定义 上图为网页事件的捕获和冒泡过程。 冒泡型事件:子元素事件会向父元素传递,触发父元素的同类事件。事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。 捕获型事件:事件从最外层...

muzidigbig的博客 832

js事件流(事件捕获——目标阶段——事件冒泡)

1. 事件捕获,事件冒泡 事件:事件是指文档和浏览器窗口发生特定交互的瞬间。 事件流: 事件流指页面中接受事件的顺序,微软为事件冒泡,网景为事件捕获。 事件捕获:由上而下,根元素最早接受事件,目标元素最后接受事件。 事件冒泡:由下而上,目标元素最早接受事件,逐级向上,最后根元素接受事件。 2. DOM事件流 DOM事件流规定,事件流由三个部分构成 事件捕获——目标阶段——事件冒泡,首先事件捕获为截获事件提供机会,然后实际目标接受事件,事件冒泡阶段对事件做出响应。事件在目标阶段是无法获取事件的。 3. 事件

qq_37280949的博客 1726

动态指定事件过程(比较精典)

默认情况下,Delphi的事件处理函数必须是一个类成员,不过可以通过以下的办法骗过系统,使用普通过程处理事件:procedure Test(dummy: Integer; Sender: TObject);begin  ShowMessage(Hello, World!);end;procedure TForm1.FormCreate(Sender: TObject);var  M : TMe

Vsun Sky ── 阿永的博客 1591
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值