事件绑定方式

基于SECS协议开发的简明教程(1) SEMI SECS MES E4 E5 E30 E37 HSMS SDK 阅读详情

事件绑定方式

  • DOM0级
    • 绑定

      • 元素.on事件类型 = 事件函数
      • 只能够绑定一个事件 因为它是对属性进行赋值
    • 移除

      • 元素.on事件类型 = null

我们都知道,一个对象的属性只能够保存一个值。 如果对一个对象属性进行多次赋值,后面赋值的属性会替换掉前面的属性

  • DOM2级

    • 绑定

      • dom.addEventListener(type, handler, boolean)
        • type: 事件类型字符串 不带on
        • handler: 事件处理函数
        • boolean: 布尔值 决定绑定到捕获阶段还是冒泡阶段 默认是false false表示冒泡
    • 结论: 可以通过addEventListener方法进行多个事件函数的绑定 执行时是按照代码的书写顺序执行 因为代码的书写顺序决定了绑定顺序

    • 移除

      • document.removeEventListener(type, handler, boolean);
        • type: 事件类型字符串 不带on
        • handler: 事件处理函数 一定要保证函数地址是绑定的那个
        • boolean: 布尔值 决定移除的是捕获阶段还是冒泡阶段 默认是false false表示冒泡
    • 结论: 第二个参数是要移除的函数 函数是引用类型 引用类型的比较的是地址 所以一定要保证 移除的函数是当初绑定的那个函数本身

  • IE中的高级绑定方式(非DOM2级)

IE中没有实现DOM2级

  • 绑定方式:
    • dom.attachEvent(type, handler);
      • type: 事件类型字符串 带on
      • handler: 事件处理函数
      • 没有第三个参数 意味着不能够绑定到捕获阶段
        特点: 可以对同一个元素绑定多个同类型事件的处理函数 执行起来是倒着执行 先绑定的后执行 后绑定的先执行
  • 移除方式:
    • dom.detachEvent(type, handler);
      • type: 事件类型字符串 带on
      • handler: 事件处理函数 要注意函数的地址问题

事件流程

  • 事件冒泡:当点击时 事件从最精确的元素 一层一层往上触发 直到最顶层元素 这个过程叫做事件冒泡
  • 事件捕获:当点击时 事件从最顶层元素 一层一层的往下触发 直到最精确元素 这个过程叫做事件捕获
    • 最精确元素: 鼠标点到谁 谁就是最精确元素
    • 最顶层元素:
      • 高级浏览器 最顶层元素是window
      • IE中 最顶层元素是 document

阻止冒泡

  • 高级浏览器中 可以通过e.stopPropagation() 进行阻止事件的冒泡

        // 高级浏览器中
        // box1是box2的父元素
        var box1 = document.querySelector(".box1");
        var box2 = document.querySelector(".box2");
    
        box1.onclick = function() {
            console.log("这是BOX1");
        }
        box2.onclick = function(e) {
            e.stopPropagation();
            console.log("这是BOX2");
        }
    
  • IE浏览器中 可以通过e.cancelBubble = true 进行阻止事件的冒泡

       // IE浏览器中
       // box1是box2的父元素
       var box1 = document.querySelector(".box1");
       var box2 = document.querySelector(".box2");
    
       box1.onclick = function() {
           console.log("这是BOX1");
       }
       box2.onclick = function(e) {
           var e = e || window.event;
           e.cancelBubble = true;
           console.log("这是BOX2");
       }
    

停止默认行为

浏览器的一些事件中,带有一些默认行为 比如a标签的点击事件中 会带有跳转页面的行为 表单的点击事件中 带有提交的默认行为 滚轮事件中 带有改变页面卷动值的默认行为

  • 高级浏览器中 可以通过 e.preventDefault() 阻止默认行为

        // 获取元素
        var a = document.getElementsByTagName("a")[0];
        // 设置点击事件
        a.addEventListener("click", function(e) {
            console.log("点击了a标签1111");
            e.preventDefault();
        }, false);
    
  • IE浏览器中 可以通过 e.returnValue = true; 阻止默认行为

        // 获取元素
        var a = document.getElementsByTagName("a")[0];
        // 设置点击事件
        a.attachEvent("onclick", function(e) {
            console.log("点击了a标签1111");
            e.returnValue = true;
        });
    
  • DOM0级事件绑定方式中,可以通过return false进行阻止默认行为

       // 获取元素
       var a = document.getElementsByTagName("a")[0];
       // 设置点击事件
       a.onclick = function() {
           return false;
       }
    
微信图片.dat文件解密实战:用Python一键转PNG(附完整代码) 本文详细介绍了如何通过Python解密微信图片.dat文件并转换为PNG格式的完整教程。文章深入解析了微信.dat文件的异或加密原理,提供了自动检测密钥的Python脚本,并分享了批量解密和性能优化的实用技巧,帮助用户轻松恢复和整理微信聊天图片。 阅读详情

相关推荐

Jetson Orin Nano Super开发板实战:视觉模型部署与性能优化指南

本文详细介绍了Jetson Orin Nano Super开发板在边缘AI视觉模型部署与性能优化的完整实战指南。内容涵盖JetPack 6.1环境配置、Docker容器化部署、YOLO11及Transformer模型的TensorRT优化技巧,并通过实测数据展示了性能提升与功耗管理策略,为开发者提供高效的视觉AI部署解决方案。

7h6j5k4l3的博客 1196

jq事件绑定四种方式

1. 简单事件绑定: 这种绑定事件方式不会重叠 $(document).click(function () { alert(1); }) 2. bind方式(不推荐,1.7以后的jQuery版本被on取代) $(document).bind("click mouseenter",function () { alert(1); }) 比简单事件绑定方式...

zuo_zuo_blog的博客 1万+

PHP服务端 苹果支付(IAP)处理

公司做的app需要做IAP订阅支付,开始觉得和微信的支付流程差不多,做起来还是有点麻烦,主要是网上的文章很少,不能拿来主义。自己做完总结一下,希望对小伙伴们有帮助我就很欣慰了。代码写的不好 不要喷我。。。 首先讲一下我的业务逻辑,也就是php服务端需要做什么事情。 先上图: 下面我详细的讲一下每...

山水的博客 1万+

React 事件绑定方式全面解析

在这里插入图片描述

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 1066

R语言生存分析之限制性立方样条分析:样条回归、和多项式回归有什么不同?是否存在非线性关系、限制性立方样条cox回归模型

R语言生存分析之限制性立方样条分析:样条回归、和多项式回归有什么不同?是否存在非线性关系、限制性立方样条cox回归模型

statistics+insight+vista+power 634

CATIA二次开发一一一计算 CATIA 零件模型在全局坐标系下的包围盒方法

本文介绍了一种在CATIA中计算零件模型全局坐标系下包围盒(BoundingBox)的方法。通过遍历零件几何体特征点,并应用坐标变换矩阵,最终返回精确的零件包围盒。核心步骤包括初始化与输入校验、坐标变换处理、几何体特征点遍历以及全局坐标变换。关键方法涉及CATMathBox操作和坐标变换接口。该方法适用于碰撞检测、可视化优化和装配分析等场景,能够快速判断零件间的空间干涉,提升渲染性能,并计算零件在装配体中的全局位置范围。

工业软件开发 895

【React 面经】React 事件绑定的方式及其区别

通过类方法绑定(手动绑定this通过箭头函数绑定在 JSX 中直接绑定事件使用函数组件的方式绑定每种绑定方式的实现机制和适用场景不同,理解它们的区别有助于选择最合适的方式。

lph159的博客 1230

开尔文四线法与电桥(uΩ电阻检测)

本文介绍了开尔文四线法与电桥在电阻测量中的应用,特别是针对uΩ级别电阻的精确检测。讨论了基本电桥电路的工作原理,强调了开尔文四线法的优势,它能消除导线和接触电阻的影响。文中还提到了测试设备的介绍,包括不同级别的电阻测试,并详细阐述了uΩ级别电阻测试的步骤和注意事项。此外,对比了惠斯通电桥与开尔文电桥,强调了它们在电阻测量中的作用和计算方法。

让你爱上电路设计 7865

JavaScript 事件绑定方式详解

JavaScript 提供了多种方式来绑定事件处理程序,每种方式都有其适用场景和特点。

echo_123qq的博客 529

智能车图像处理5-入门级分析4 ---环岛的状态机与补线

PS :入门级文章适合新手,如果已经有基础可以去看进阶篇文章。

taiyuezyh的博客 8251

16、AI与无人机助力紧急器官移植及医疗物资运输

本文探讨了AI与无人机(UAV)集成模型在紧急器官移植和医疗物资运输中的应用。传统运输方式受限于交通、时间和环境因素,而基于图神经网络(GNN)的AI-UAV系统可实现高效、智能、全天候的医疗物资配送,具备实时温湿度监控、自动导航和适应复杂地形等优势。文章分析了该模型在血液、器官运输中的关键作用,展示了其在澳大利亚、中国、美国等国的实际应用案例,并通过表格与流程图说明运作机制。同时,文章还探讨了技术、法规和社会层面的挑战及应对策略,展望了未来技术融合、应用拓展和国际合作的发展趋势,凸显其在全球医疗物流中的广

lll78的博客 102

React-事件绑定方式及区别

避免在 JSX 中直接使用内联绑定(除非明确无性能影响)。,函数组件使用 useCallback。选择绑定方式时,推荐类组件使用。

qq_44165941的博客 1072

EEMD算法原理及应用

本博客主要概括EEMD算法的背景、原理以及应用,利用EEEMD对信号进行分解,然后选择有用的IMF分量进行叠加以完成信号的重构,从而实现对信号降噪。本文配套的源代码见文中链接,可供大家免费下载。

总结论文中的算法并给出论文的复现代码 4万+

事件绑定的几种常见方式

在项目开发中,经常遇到绑定事件不起作用,或者事件绑定多次,导致重复触发。为了应对所遇到的问题,上网查阅了一些资料,对事件绑定做了一些系统研究。##1.事件绑定的几种常见方式(以click事件为例)   $(selector).click(function(){...})   $(selector).bind("click",function(){...}) ...

aolaoning2593的博客 339

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

原生Js事件绑定的三种方式

html标签事件绑定:属性赋值 ,这个在该元素的properties属性中可以查到,也可以在事件监听中看到 <script> function show(){    console.log('show'); } function print(){    console.log('print'); } </script> &...

wuliangfan的博客 1084

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

事件绑定的几种方式

(一)事件绑定的几种方式 javascript给DOM绑定事件处理函数总的来说有2种方式:在html文档中绑定、在js代码中绑定。下面的方式1、方式2属于在html中绑定事件,方式3、方式4和方式5属于在js代码中绑定事件,其中方法5是最推荐的做法。 方式1: HTML的DOM元素支持onclick、onblur等以on开头属性,我们可以直接在这些属性值中编写javascript...

weixin_30390075的博客 3304

温度PID控制PLC程序

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

关于JavaScript事件绑定的方式

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33714884的博客 113

ExtJS事件绑定方式示例

无标题文档 Ext.onReady(function(){ function hello1(){ alert('hello1'); return false; } function hello2(){ alert('hello2'); return false; } [co...

天螺蛳 239

React事件绑定的几种方式对比

React事件绑定 由于类的方法默认不会绑定this,因此在调用的时候如果忘记绑定,this的值将会是undefined。通常如果不是直接调用,应该为方法绑定this。绑定方式有以下几种: 1. 在构造函数中使用bind绑定this class Button extends React.Component { constructor(props) { super(props);...

dianqi0560的博客 80

6.Jquery中的事件绑定方式

一、Javascript中事件绑定方式 嵌入式绑定: <input type = "button" onclick = "func1()" /> 缺点:一次只能为一个标签绑定监听事件 基于DOM对象的绑定方式 var array = document.getElementsByName("ck"); for(var i = 0;i < array.length;i++...

weixin_37714766的博客 215

js事件绑定的几种方式

每种方式都有其适用的场景和特点,根据具体情况选择合适的方式来绑定事件。这里使用了 jQuery 的 `$` 函数选择按钮,并使用 `click()` 方法将一个匿名函数作为点击事件的处理函数。这里的 `addEventListener()` 方法将一个匿名函数作为事件处理函数添加到按钮的点击事件上。这里的 `onclick` 属性指定了一个名为 `myFunction` 的函数作为点击事件的处理函数。这里的 `onclick` 属性被赋值为一个匿名函数,该函数将成为按钮的点击事件处理函数。

子玉的博客 1169

Javascript事件绑定的几种方式

Javascript事件绑定的几种方式(百度电话面试题) Javascript的事件绑定主要有四种方法(一下在IE中运行正常,但不保证其他浏览器): [注:onXXX为某一事件,fun为某一function,domId为某一DOM对象id,event类型见后边附录。] 1、在DOM中,直接用onXXX="fun();"进行绑定 2、在Javascript代码中用 DOM

sunny_sailor的专栏 1163

jQuery事件绑定方式

一、bind <div style="border: 1px solid red">郑州大学</div> <script> $("div").bind("click",function(){ console.log(111); }); //当点击“郑州大学”时触发事件在控制台上输出“111” var obj = { mouseover:function(){ this.style.backgroundColor="#0000FF"; },

qq_46091702的博客 142

解读React中的事件绑定方式种类以及区别

解读React中的事件绑定方式种类以及区别 本章节主要介绍React的事件绑定方式,由于类的方法默认不会绑定this,因此在调用的时候如果忘记绑定,this的值将会是undefined。 通常如果不是直接调用,应该为方法绑定this。所以我们来解读下有多少种方式可以绑定this,以及它们的区别有哪些? 答:4种,哪4种呢,大家继续往下看: 4种方式绑定this 1. 在构造函数中使用bind绑定...

小青蛙的博客 695
上一篇: ES5的数组方法
下一篇: 正则表达式里面的符号
yinviolet
博客等级 码龄7年 3粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值