首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浅析 JavaScript 中事件委托

有没有更好方法? 幸运是,如果我们使用事件委托”模式的话,侦听多个元素上事件只需要一个事件侦听器事件委托使用事件传播机制细节。想要要了解事件委托工作原理,应该先了解什么是事件传播。...那么事件传播是怎样帮助捕获多个按钮事件呢? 该算法很简单:把事件侦听器附加到按钮父级,并在单击按钮捕获冒泡事件。这就是事件委托工作方式。...你不需要把委托事件监听器直接附加到按钮上,而是可以委托父监听 。单击按钮,父元素侦听器将会捕获冒泡事件(还记得前面所说事件传播吗?)。...该事件侦听器也会对按钮单击做出反应,因为按钮单击事件冒泡通过祖先元素(由于事件传播)。 步骤 3:用 event.target 选择目标元素 单击按钮,将会用event 对象参数调用处理函数。...总结 发生点击事件(或传播任何其他事件事件从 window、document、根元素向下传播,并经过目标元素祖先(捕获阶段); 事件发生在目标(目标阶段)上; 最后,事件在目标祖先之间冒出气泡

2.6K30

事件高级

) eventTarget.addEventListener()方法将指定监听器注册到 eventTarget(目标对象)上,对象触发指定事件,就会执行事件处理函数。...eventTarget.attachEvent()方法将指定监听器注册到 eventTarget(目标对象) 上,对象触发指定事件,指定回调函数就会被执行。...访法接收两个参数: ●e eventNameWithOn:事件类型字符串,比如onclick、onmouseover, 这里要带on ●callback: 事件处理函数,目标触发事件回调函数被调用...那么是先执行父元素单击事件,还是先执行div单击事件 ??? 事件流描述是从页面中接收事件顺序。 事件发生时会在元素节点之间按照特定顺序传播,这个传播过程即DOM事件流。...比如:我们给页面中一个div注册了单击事件,当你单击div,也就单击了body,单击了html,单击了document。 ?

1.5K41
您找到你想要的搜索结果了吗?
是的
没有找到

事件高级

eventTarget.addEventListener()方法将指定监听器注册到 eventTarget(目标对象)上,对象触发指定事件,就会执行事件处理函数。...eventTarget.attachEvent()方法将指定监听器注册到 eventTarget(目标对象) 上,对象触发指定事件,指定回调函数就会被执行。...那么是先执行父元素单击事件,还是先执行div单击事件 ??? 事件流描述是从页面中接收事件顺序。 事件发生时会在元素节点之间按照特定顺序传播,这个传播过程即DOM事件流。...比如:我们给页面中一个div注册了单击事件,当你单击div,也就单击了body,单击了html,单击了document。 ?...键盘触发事件的话,会得到键盘相关信息,如按了哪个键。 事件对象使用 事件触发发生就会产生事件对象,并且系统会以实参形式传给事件处理函数。

1.3K20

事件高级

(type, listener[, useCapture]) eventTarget.addEventListener()方法将指定监听器注册到 eventTarget(目标对象)上,对 象触发指定事件...方法接收三个参数:  type:事件类型字符串,比如 click 、mouseover ,注意这里不要带 on  listener:事件处理函数,事件发生,会调用监听函数  useCapture...()方法将指定监听器注册到 eventTarget(目标对象) 上,对象触 发指定事件,指定回调函数就会被执行。...方法接收两个参数:  eventNameWithOn:事件类型字符串,比如 onclick 、onmouseover ,这里要带 on  callback: 事件处理函数,目标触发事件回调函数被调用...事件对象使用 事件触发发生就会产生事件对象,并且系统会以实参形式传给事件处理函数。 所以,在事件处理函数中声明1个形参用来接收事件对象。

1.2K10

vue2.0知识点汇总

-- stu.score = A 匹配red,stu.score= B 匹配green --> <li v-for="stu in stus" :class="{'A': '....capture - 添加<em>事件</em><em>侦听器</em><em>时</em><em>使用</em> capture 模式。 .self - 只当<em>事件</em>是从<em>侦听器</em>绑定<em>的</em>元素本身触发<em>时</em>才触发回调。 ....{keyCode | keyAlias} - 只当<em>事件</em>是从<em>特定</em>键触发<em>时</em>才触发回调。 .native - 监听组件根元素<em>的</em>原生<em>事件</em>。 .once - 只触发一次回调。...表达式可以是一个方法<em>的</em>名字或一个内联语句,如果没有修饰符也可以省略。 从 2.4.0 开始,v-on 同样支持不带参数绑定一个<em>事件</em>/监听器键值对<em>的</em>对象。注意<em>当</em><em>使用</em>对象语法<em>时</em>,是不支持任何修饰器<em>的</em>。...用在普通元素上<em>时</em>,只能监听 原生 DOM <em>事件</em>。用在自定义元素组件上<em>时</em>,也可以监听子组件触发<em>的</em>自定义<em>事件</em>。 在监听原生 DOM <em>事件</em><em>时</em>,方法以<em>事件</em>为唯一<em>的</em>参数。

6.6K70

JavaScript事件

在最初,是使用HTML事件处理程序,也就是说,某个元素(如div),支持每一种事件,都可以使用一个与相应事件处理程序同名HTML特性来制定(也就是标签一个属性),这个特性值就是能够执行JavaScript...事件类型 (1)单击事件onClick   当用户单击鼠标按钮,产生onClick事件。同时onClick指定事件处理程序或代码将被调用执行。...(4)获得焦点事件onFocus   当用户单击Text或textarea以及select对象,产生该事件。此时对象成为前台对象。...(6)载入文件onLoad   文档载入时,产生该事件。onLoad一个作用就是在首次载入一个文档检测cookie值,并用一个变量为其赋值,使它可以被源代码使用。...(7)卸载文件onUnload   Web页面退出引发onUnload事件,并可更新Cookie状态。 ? 事件事件流:描述是从页面中接收事件顺序。

2K60

23 个初级 Vue.js 面试题

例如以下代码使用 v-on 指令在组件上实现 click 事件侦听器。...在下面的代码中,仅 isDisplayed 数据属性为 true ,才会显示元素。...绑定 HTML 类如何连接类?假设存在一个元素:Process。我们只希望使用名为 “isActive” 数据属性动态地切换 btnActive 类。 这可以在绑定类用 Array 来实现。...从属属性更改时,计算方法将自动计算并缓存结果,这样比使用普通方法更好。方法在访问将始终会重新计算,而如果自上一次计算和缓存阶段以来方法内使用属性未发生更改,则计算属性将不会重新计算。...观察者允许我们观察更改特定属性,并执行定义为函数自定义操作。尽管它们用例与计算属性相交叉,但是某些数据属性发生改变,有时需要观察者执行自定义操作或运行代价昂贵操作。 24.

4.7K10

如何在 React 中点击显示或隐藏另一个组件?

使用事件处理机制响应用户交互React 组件可以用 onClick 事件处理函数来响应用户单击事件。当用户单击按钮,onClick 事件处理函数被触发,并执行一些逻辑代码。...在上一节中,我们已经编写了一个简单点击按钮来切换组件可见性例子。接下来,我们将看看如何使用事件处理函数实现更高级功能。显示/隐藏菜单我们可以使用事件处理函数来显示或隐藏菜单。...当用户单击菜单按钮,菜单应该出现,然后当用户单击菜单外部,菜单应该消失。下面是一个示例,展示如何使用 React 和事件处理函数来实现菜单显示和隐藏。...显示/隐藏模态框我们可以使用事件处理函数来触发模态对话框显示或隐藏。当用户单击打开模态框按钮,模态框应该出现;当用户单击关闭按钮或模态框之外,模态框应该消失。...当用户单击关闭按钮,我们将可见性设置为 false,模态对话框将被隐藏。小结在本文中,我们介绍了如何使用 React 来实现点击显示或隐藏另一个组件。

4.4K10

JQuery最全常用方法指南

triggerHandler(type, [data]) 这一特定方法会触发一个元素上特定事件(指定一个事件类型),同时取消浏览器对此事件默认行动 unbind([type], [data]) 反绑定...input, textarea, select click() 鼠标点击某个对象 几乎所有元素 dblclick() 鼠标双击某个对象 几乎所有元素 error() 加载文档或图像发生某个错误 window...这是一个Ajax事件 所有AJAX请求都停止隐藏loading信息。...这是一个Ajax事件 AJAX请求成功完成,显示信息。....innerHTML; 3、如何获取jQuery集合某一项 对于获取元素集合,获取其中某一项(通过索引指定)可以使用eq或get(n)方法或者索引号获取,要注意,eq返回是jquery对象,而

10.9K31

如何使用AngularJS和PHP为任何位置生成短而独特数字地址

第6步 - 添加事件监听器 向应用程序添加交互元素有助于保持用户参与。我们将通过使用事件侦听器在此应用程序中实现一些交互行为。 一个事件是发生在网页上任何行动。...常见事件例子有: 单击HTML按钮 更改输入字段内容 将焦点从一个页面元素更改为另一个页面元素 一个事件监听器是一个指令,它讲述了一个程序在特定事件发生采取某种行动。...在AngularJS中,事件侦听器使用通常遵循以下格式指令进行定义: ng-event_type=expression 在此步骤中,我们将添加一个事件侦听器,它有助于在用户提交表单将用户输入信息处理到...我们还将添加几个事件监听器,使应用程序更具交互性。具体来说,我们将使用这些侦听器更改应用程序映射中显示位置,放置标记,并在用户在表单中输入信息在该位置周围绘制一个矩形。...接下来,通过添加几个blur事件侦听器继续编辑此块。一个blur在一个给定页面元素失去焦点发生事件。将以下突出显示行添加到form块input标记中。

13.1K20

Vue.js入门教程-指令

四、v-show 和 v-if 4.1 v-show 根据表达式之真假值,切换元素 display CSS 属性 ? ? DIV1 表达式是假值,元素隐藏DIV2 表达式是真值,元素显示。...七、v-for 基于源数据多次渲染元素或模板块(JavaScript遍历) 7.1 特点语法 v-for 指令必须使用特定语法 alias in expression,为当前遍历元素提供别名 ?...(3).capture - 添加事件侦听器使用 capture 模式。 (4).self - 只当事件是从侦听器绑定元素本身触发才触发回调。 (5)....{keyCode | keyAlias} - 只当事件是从特定键触发才触发回调。 (6).native - 监听组件根元素原生事件。 (7).once - 只触发一次回调。...(11).passive - (2.3.0) 以 { passive: true } 模式添加侦听器 九、v-bind 表达式值改变,将其产生影响,响应式地作用于 DOM。 ? ?

2.2K40

react面试题笔记整理

(1)使用箭头函数作为map等方法回调函数,箭头函数作用域是当前组件实例化对象(即箭头函数作用域是定义作用域),无须绑定作用域。(2)事件回调函数要绑定组件作用域。...React 中 refs 作用是什么Refs 是 React 提供给我们安全访问 DOM元素或者某个组件实例句柄可以为元素添加ref属性然后在回调函数中接受元素在 DOM 树中句柄,值会作为回调函数第一个参数返回...比较有趣是,React 实际上并不将事件附加到子节点本身。React 使用单个事件侦听器侦听顶层所有事件。这对性能有好处,也意味着 React 在更新 DOM 不需要跟踪事件监听器。...在使用 React Router如何获取当前页面的路由或浏览器中地址栏中地址?...其他方式在列表需要频繁变动使用唯一 id 作为 key,而不是数组下标。必要通过改变 CSS 样式隐藏显示组件,而不是通过条件判断显示隐藏组件。

2.7K30

杨老师课堂之Jquery筛选,事件,效果,Ajax,javascript跨域)

(1算起) first(),获取第一个元素 last(),获取最后个元素 hasClass(class),检查当前元素是否含有某个特定类,如果有,则返回true。...事件冒泡可能会引起预料之外效果,上例中,本来只想触发元素 click事件,然而 元素和元素click事件也同时被触 发了.因此有必要对事件作用范围进行限制.单击元素,只 触发元素click...事件,而不触发 和元素上 click事件.单击 元素,只触发 元素上click事件, 而不触发元素上click事件....//event:事件对象 $(“element”).bind(“click”,function(event){ //coding… }) 这样,单击”element”,事件对象就被创建了,这个事件对象只有事件处理函数才能访问到...; event.stopPropagation();//停止冒泡事件 }) 单击span元素,只会触发span元素上click事件,而不会触发 div元素和body元素click事件.

8.2K20

「Web编程API」- 03

eventTarget(目标对象)上,对象触发指定事件,就会执行事件处理函数。...attacheEvent()事件监听(IE678支持) eventTarget.attachEvent()方法将指定监听器注册到 eventTarget(目标对象) 上,对象触发指定事件,...DOM事件流 html中标签都是相互嵌套,我们可以将元素想象成一个盒子装一个盒子,document是最外面的大盒子。 当你单击一个div,同时你也单击div父元素,甚至整个页面。...比如:我们给页面中一个div注册了单击事件,当你单击div,也就单击了body,单击了html,单击了document。 当时2大浏览器霸主谁也不服谁!...键盘触发事件的话,会得到键盘相关信息,如按了哪个键。 事件对象使用 事件触发发生就会产生事件对象,并且系统会以实参形式传给事件处理函数。

1.4K50

前端成神之路-WebAPIs03

eventTarget.addEventListener()方法将指定监听器注册到 eventTarget(目标对象)上,对象触发指定事件,就会执行事件处理函数。 ?...eventTarget.attachEvent()方法将指定监听器注册到 eventTarget(目标对象) 上,对象触发指定事件,指定回调函数就会被执行。 ?...DOM事件流 html中标签都是相互嵌套,我们可以将元素想象成一个盒子装一个盒子,document是最外面的大盒子。 当你单击一个div,同时你也单击div父元素,甚至整个页面。...比如:我们给页面中一个div注册了单击事件,当你单击div,也就单击了body,单击了html,单击了document。 ? 当时2大浏览器霸主谁也不服谁!...事件对象使用 事件触发发生就会产生事件对象,并且系统会以实参形式传给事件处理函数。 所以,在事件处理函数中声明1个形参用来接收事件对象。 ?

2.9K20

Vue学习笔记(一)

数据源发生变化时,会被 ViewModel 监听到,VM 会自动更新页面的结构 表单元素值发生变化时,也会被 VM 监听到,VM 会把更新值自动同步到数据源(Model)中 2. vue 基本使用...-- 使用属性绑定指令,进行字符串拼接字符串需要使用嵌套引号 --> <script src="....:vue 提供了<em>事件</em>修饰符<em>的</em>概念,辅组程序员更方便地对<em>事件</em><em>的</em>触发进行控制 按键修饰符:在监听键盘<em>事件</em><em>时</em>,如果需要判断详细<em>的</em>按键,可以为键盘相关<em>事件</em>添加按键修饰符 <...<em>侦听器</em> 允许开发者监视数据<em>的</em>变化,从而针对数据<em>的</em>变化做<em>特定</em><em>的</em>操作 { // console.log(result.data); // }) //不用then,简化版本 //如果调用<em>某个</em>方法<em>的</em>返回值<em>时</em>

4.3K20
领券