IE事件处理和W3C事件处理的区别

如何用java语言编写小游戏?(三) 事件模型 实现窗体,还有各种控件之后,如果想要发生些交互行为,事件控制是必不可少的。 一个事件源产生一个事件并把它(事件对象)送到一个或多个监听器,监听器只是简单地等待,直到它收到一事件。事件一旦被监听器接受,监听器将处理这些事件。 一个事件源必须注册监听器,以便监听器可以接收一个特定事件的通知。 事件控制的过程可以分为以下四步: 监听器对象属于一个类的实例,这个类实现了一个特殊的接口,名为“监听者接口”(Listener interface) 事件源是一个对象,它可以注册到一个或多个监听器对象中,以便向 阅读详情

 

注意:

W3C事件的 target 与 currentTarget 的区别?

  • target 只会出现在事件流的目标阶段
  • currentTarget 可能出现在事件流的任何阶段
  • 当事件流处在目标阶段时,二者的指向相同
  • 当事件流处于捕获或冒泡阶段时:currentTarget 指向当前事件活动的对象(一般为父级)

手写事件侦听器(浏览器兼容)

 

//   手写事件侦听器

var eventUtil = {
    getEvent: function(e) {
        return e || window.event;
    },

    getTarget: function(e) {
        return e.target || e.srcElement;
    },

    addListener: function(el, type, handler) {
        if(el.addEventListener) {
            el.addEventListener(type, handler, false);
        } else if (el.attachEvent) {
            el.attachEvent('on' + type, handler);
        } else {
            el['on' + type] = handler;
        }
    },

    removeListener: function(el, type, handler) {
        if(el.removeListener) {
            el.removeListener(type, handler, false);
        } else if (el.detachEvent) {
            el.detachEvent(type, handler);
        } else {
            el['on' + type] = null;
        }
    },

    preventDefault: function(e) {
        if(e.preventDefault) {
            e.preventDefault();
        } else {
            e.returnValue = false;
        }
    },

    stopPropagation: function(e) {
        if(e.stopPropagation) {
            e.stopPropagation();
        } else {
            e.cancelBubble = true;
        }
    }
};

// 调用
(function() {
    var btn = document.getElementById('btn');
    var link = document.getElementsByTagName('a')[0];

    eventUtil.addListener(btn, 'click', function(e) {
        var e = eventUtil.getEvent(e);
        var target = eventUtil.getTarget(e);
        console.log(event.type, target);
        eveventUtil.stopPropagation(e)
    });

    eventUtil.addListener(link, 'click', function(e) {
        // 阻止点击连接跳转, 即阻止默认事件
        var e = eventUtil.getEvent(e);
        eventUtil.preventDefault(e)
    });

    eventUtil.addListener(document.body, 'click', function() {
        console.log('click body');
    });
})();

javascript事件模型:

  • Dom0级模型

        又称为原始事件魔性, 在该模型中, 事件不会传播, 即没有事件流的概念. 事件绑定监听函数比较简单, 有两种方式

// 1. html代码中直接绑定
<input type = "button" onclick = "fun()">

// 2. 通过js代码指定属性值
var btn = document.getElementById('btn');
btn.onclick = fun;

// 移除监听函数
btn.onclick = null;
  • IE事件模型

       IE事件模型有两个过程: 事件处理和事件冒泡

var btn = document.getElementById('.btn');
btn.attachEvent(‘onclick’, showMessage);
btn.detachEvent(‘onclick’, showMessage);
  • Dom2级模型(属于W3C标准模型)

      在该事件模型中, 一次事件共有三个过程: 

      事件捕获--事件处理--事件冒泡

var btn = document.getElementById('.btn');
btn.addEventListener(‘click’, showMessage, false);
btn.removeEventListener(‘click’, showMessage, false);

/**
  * 参数说明:
  * eventType指定事件类型(不要加on)
  * handler是事件处理函数
  * useCapture是一个boolean用于指定是否在捕获阶段进行处理,一般设置为false与IE浏览器保持一致

**/

 

WOFOST模型参数调优实战:从‘跑不通’到‘预测准’的避坑指南 本文详细介绍了WOFOST模型参数调优的实战技巧,帮助用户从模型报错诊断到参数敏感性分析,再到土壤-作物参数联调策略,逐步解决‘跑不通’到‘预测准’的问题。通过Python和PCSE工具,提供参数扰动测试模板和关键参数优先级矩阵,助力作物模型的高效校准与预测。 阅读详情

相关推荐

LangGraph的容错机制:从节点失败到图级回滚

核心概念铺垫:讲解LLM应用容错与事务性的核心概念(幂等性、重试策略、降级策略、快照、回滚、原子性、一致性、隔离性、持久性、最终一致性),对比LangGraph容错机制与传统数据库ACID事务、Apache Airflow/Kubernetes Workflow/Kubeflow Pipelines容错机制的异同;LangGraph容错机制的演进历史:用markdown表格梳理LangGraph从0.0.1到1.5.0(截止202X年X月)的容错机制发展历程;节点级别的容错:重试与降级。

AI Python 编程之道的博客 175

【基础知识】事件模型

DOM树【Document Object Model】 介绍事件模型之前,先简单看下DOM树的结构: DOM树就像是一颗倒长着的大树,这样的对象模型决定了节点之间都有一定的关联。它们关系可能有父子、有兄弟,我们可以顺着这颗树做出许多操作)。 每个HTML页面都是一颗DOM树,浏览器在解析HTML代码时,会按照代码结构将代码解析成一颗树状结构,每个HTML标签对应DOM树上相应的结点。 下面是...

lanwuying的专栏 1591

Code Ocean 上传代码 手把手教程

对于一些学术期刊,录用前会让把代码上传到Code Ocean上,但上传过程可能会遇到一些问题,小编分享一下自己的上传经验。他们会进行验证,验证通过,将自动发布。点此运行即可,但是运行比较慢。

u014071947的博客 1万+

事件模型

一、事件模型是什么 浏览器的事件模型,就是通过监听事件执行对应的监听函数。 JS绑定事件监听有三种方法: html的on属性 【on+事件名】的方法绑定 <script> el.setAttribute('onclick','doSomething()'); //等同于<Element onclick = "doSomething()"> </s...

weixin_42617917的博客 761

高光谱图像处理和分析软件(包含雷尼绍Renishaw wdf 文件导入解析功能)

是一款基于微软windows操作系统的多传感器成像工具,用于处理和分析高光谱图像。它是一个模块化的系统,由一个基本的引擎,一个图形用户界面,一个化学计量工具箱和可选的用户提供的模块组成。它支持最重要的光谱成像技术,如UV/Vis、红外、拉曼、太赫兹、光发射/吸收和质谱。除此之外,还允许用户将高光谱图像与物理属性图和传统高分辨率彩色照片合并在一起 链接:https://pan.baidu.com/s/1ruQ5YSh5_ZS9wx_V3Q5Oow 提取码:qdx0 ...

业余程序员小徐的博客 8074

【Hyper-V】虚拟机网络配置全解析:从端口映射到固定IP实战

本文全面解析Hyper-V虚拟机网络配置,从理解虚拟交换机三种模式(外部、内部、专用)的底层逻辑入手,指导用户创建稳定的内部/NAT网络,并详细演示如何在Linux与Windows虚拟机中配置固定IP。文章进一步深入讲解端口映射原理与netsh命令实战,以及双网卡配置和PowerShell自动化脚本等高级技巧,帮助用户彻底解决虚拟机网络“失联”问题,实现灵活可控的网络环境。

weixin_29290947的博客 269

数据分析模型之二:事件模型

在日常工作中,不同岗位、不同角色所关注的事件各不相同,比如,市场人员可能关注点击进入落地页的人数以及进入落地页后用户是否点击核心按钮,比如“立即注册/立即购买”等?运营人员可能更关注某次邀请好友活动中老用户是否点击该活动页面,是否将邀请海报分享到朋友圈?PM可能更关心新功能上线后用户是否点击打开?在洞察诸如此类的指标过程中,事件模型就起到了至关重要的作用。那么,什么叫做“事件”呢?简单讲,就是用户在产品上的行为。

AndersonHuang的博客 1579

中小公司无线组网实战:用一台H3C AC和普通三层交换,实现办公网AP统一管理

本文详细介绍了中小型企业如何利用H3C AC控制器与普通三层交换机实现无线AP统一管理的实战方案。通过VLAN规划、DHCP配置和AC控制器设置,构建经济高效的办公网络,解决信号覆盖和连接稳定性问题,特别适合50-200人规模的企业部署。

weixin_42531516的博客 383

聊聊事件模型

如上,当希望为同一个元素绑定多个同类型事件的时候(上面的这个 btn 元素绑定2个点击事件),是不被允许的,后绑定的事件会覆盖之前的事件。事件冒泡是一种从下往上的传播方式,由最具体的元素(触发节点)然后逐渐向上传播到最不具体的那个节点,也就是 DOM 中最高层的父节点。元素上发生,然后逐级向上传播事件捕获与事件冒泡相反,事件最开始由不太具体的节点最早接受事件,而最具体的节点(触发节点)最后接受事件。,返回一个代表当前执行阶段的整数值。都是在冒泡阶段响应了事件,由于冒泡的特性,裹在里层的p 率先做出响应。

2401_86113453的博客 961

示波器核心参数选型指南:带宽、采样率与嵌入式调试实战

示波器是电子工程师进行信号观测与故障诊断的基础仪器,其性能由带宽、采样率、通道数、存储深度、触发系统和探头特性共同决定。带宽定义高频响应边界,需遵循5倍法则以保障数字信号上升沿测量精度;采样率则依据奈奎斯特定理并结合工程冗余(通常≥2.5×带宽)实现可靠时域重建。二者协同影响信号完整性评估能力,尤其在UART、I²C、SPI等嵌入式总线调试中至关重要。高存储深度支持长时捕获与毛刺定位,智能触发与硬件协议解码进一步将波形分析升维至语义级。本文围绕真实嵌入式场景,解析参数间的耦合关系与典型误用陷阱。

weixin_42588877的博客 92

Codex,Copilot 是什么

GitHub Copilot是什么 **GitHub Copilot** 是一款由 **GitHub** 和 **OpenAI** 合作开发的 **AI 代码辅助工具**,它基于 **OpenAI Codex 技术**,能够根据上下文自动生成代码建议,大幅提升编程效率

ZhangJiqun&191cm&85kg 6839

IE浏览器事件处理和 W3C的事件处理的区别?

绑定事件: W3C:targetEl.addEventListener("click",handler,false) // targetEl=>目标元素 handler=>处理函数 IE:targetEl.attachEvent("onclick",hanlder) //在ie浏览器中attachEvent 中的this总是指向 window对象 删除事件...

业余前端的职业经历 465

OSG三维渲染引擎编程学习之一:“第一章:OSG介绍” 之 “1.1 OSG简介”

第一章:OSG介绍; 1.1 OSG简介。

LuckyHanMo的博客 3224

2020-9:DOM的浏览器兼容性问题/IE的事件处理和W3C的事件处理有哪些区别

DOM的浏览器兼容性问题1)事件模型2)事件绑定:3)获得事件对象的方法:4)获得目标元素5)阻止冒泡:6)阻止默认行为:7)定义一个函数,可以支持所有浏览器中的处理函数的绑定(考虑浏览器的兼容性) 1)事件模型 DOM(3个阶段): ① 外向内:捕获 ② 目标触发 ③ 内向外:冒泡执行 IE8(2个阶段): 没有捕获阶段 ① 目标触发 ② 内向外:冒泡执行 2)事件绑定: DOM: elem.addEventListener(‘click’, function(){}, false),第3

Sylvia的博客 248

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IE 事件流和 W3C 事件流有什么区别,参数分别是什么,以及如何阻止事件冒泡?

大家好,这里是修真院前端小课堂,今天给大家分享的是 《IE 事件流和 W3C 事件流有什么区别,参数分别是什么,以及如何阻止事件冒泡?》 1. 知识剖析 什么是事件?什么是事件流? HTML 元素事件是浏览器内在自动产生的,当有事件发生时 html 元素会向外界 (这里主要指元素事件的订阅者) 发出各种事件,如 click,onmouseover,onmouseout 等等。而事...

IT修真院:初学者转行到互联网的聚集地 648

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

第二十六章:事件绑定及深入

模型),一种是现代事件绑定(DOM2 级模型)。现代事件绑定在传统绑定上提供了更强大更方便的功能。一.传统事件绑定的问题传统事件绑定有内联模型和脚本模型, 内联模型我们不做讨论, 基本很少去用。 先来看一下脚本模型,脚本模型将一个函数赋值给一个事件处理函数。 var box = document.getElementById('box'); //获取元素 box.onclick = function () { //元素点击触发事件 alert('Lee'); };  问题一:一个事件处理函数触发两

chaoyv 166

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

第三章 web前端开发工程师--JavaScript进阶程序设计 3-14 事件绑定和深入

JavaScript 事件绑定和深入 本节课所讲内容: 1.事件冒泡 2.事件绑定问题 3.事件处理函数 主讲教师:Head老师 一.事件冒泡 事件流 事件流是描...

zjl-wgf 186

24.事件绑定及深入

事件绑定及深入 学习要点: 1.传统事件绑定的问题 2.W3C事件处理函数 3.IE事件处理函数 4.事件对象的其他补充 事件绑定分为两种:一种是传统事件绑定(内联模型,脚本模型),一种是现代事件绑定(DOM2级模型)。现代事 件绑定在传统绑定上提供了更强大更方便的功能。 一、传统事件绑定问题 传统事件绑定有内联模型和脚本模型,内联模型我们不做讨论,基本很少去用。先来看一下脚本模型,脚本模型将一...

journeyIT的博客 83

W3C对DOM2.0定义的标准事件

DOM2.0模型将事件处理流程分为三个阶段:   一、事件捕获阶段,   二、事件目标阶段,   三、事件起泡阶段。 具体如图(图片来源于网络,侵删) 事件捕获:当某个元素触发某个事件(如onclick),顶层对象document就会发出一个事件流,随着DOM树的节点向目标元素节点流去,直到到达事件真正发生的目标元素。在这个过程中,事件相应的监听函数是...

weixin_34256074的博客 85

JS | JS中的event和window.event的区别

JS中的事件对象event和window.event的区别:window.event‌是Internet Explorer特有的事件对象,不支持其他浏览器。event‌遵循W3C标准,是大多数现代浏览器支持的事件对象。在标准兼容的浏览器中,事件对象作为参数传递给事件处理函数。

青春木鱼的博客 944

JavaScript面试题三千问---下篇

31.IE 的事件处理和 W3C 的事件处理有哪些区别? 绑定事件: W3C:targetEl.addEventLIstener(‘click’,handler,false); IE:targetEl.attachEvent(‘onclick’,handler); 删除事件: W3C:targetEl.removeEventListener(‘click’,handler,false); IE:targetEl.detachEvent(‘onclick’,handler); 事件对象: W3C:v

AK的博客 7898

stoppropagation、cancelBubble区别(阻止冒泡)

事实上stoppropagation和cancelBubble的作用是一样的,都是用来阻止浏览器默认的事件冒泡行为。 不同之处在于stoppropagation属于W3C标准,试用于Firefox等浏览器,但是不支持IE浏览器。相反cancelBubble不符合W3C标准,而且只支持IE浏览器。所以很多时候,我们都要结合起来用。不过,cancelBubble在新版本chrome,opera浏览器...

qq_41619567的博客 343

IE和Firefox下event乱谈

如果在使用javascript的时候涉及到event处理,就需要知道event在不同的浏览器中的差异,因为javascript的事件模型有三种,它们分别是NN4、IE4+和W3C/Safari;这也造成了在不同的浏览器中处理event的差异,这里结合一些零碎的代码来说明如何做到event在IE4+和Firefox下的正常工作。首先看如下代码: functiondoEventThing(even...

weixin_34220834的博客 76

JS中的事件绑定,事件捕获,事件冒泡以及事件委托,兼容IE

文章来源:http://www.cnblogs.com/ninofocus/archive/2012/11/07/javascript-event-bind.html                          http://www.cnblogs.com/zhangmingze/p/4864367.html                          http://www.cnb

Night_Emperor的博客 524

(转)JavaScript事件---事件绑定和深入

内容提纲: 1.传统事件绑定的问题 2.W3C事件处理函数 3.IE事件处理函数 4.事件对象的其他内容 事件绑定分为两种:一种是传统事件绑定(内联模型,脚本模型),一种是现代事件绑定(DOM2级模型)。现代事件绑定在传统绑定上提供了更强大更方便的功能。 一.传统事件绑定的问题 传统事件绑定有内联模型和脚本模型,内联模型我们不做讨论,基本很少去用。先来看一下脚本模型,脚本...

weixin_34241036的博客 106

event代表事件的状态,专门负责对事件的处理,它的属性和方法能帮助我们完成很多和用户交互的操作;...

IE的event和其他的标准DOM的Event是不一样的,不同的浏览器事件的冒泡机制也是有区别IE:window.event.cancelBubble = true;//停止冒泡window.event.returnValue = false;//阻止事件的默认行为Firefox:event.preventDefault();// 取消事件的默认行为 event.stopPropagation(...

weixin_30747253的博客 213
上一篇: html5 input新类型在不同浏览器下的表现
下一篇: throttle含义, 应用场景和原理
ruby_xc
博客等级 码龄10年 10粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值