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

事件

如 onclick、onmouseover,要带 on callback: 事件处理函数,事件发生会调用该回调函数 IE9 之前的 IE 不支持,对应有 attachEvent(),用法和 addEventListener...,弹出顺序4、3、2、1 有些事件是没有冒泡的,如 blur, focus, mouseenter, onmouseleave 例如: const btn = document.getElementById...()之前会依次弹出 1、2、3、4,在按钮绑定的事件中,加上之后只会弹出 1 事件委托 事件委托也被称为事件代理,在 jQuery 里面称为事件委派。...事件委托原理 不需要给每个子结点单独设置事件监听器,而是把事件监听器设置在其父节点上,然后利用冒泡原理去影响子节点。...不识别功能键,如ctrl、shift等 执行顺序是: keydown-->keypress-->keyup 首先,keyup 是弹起时才会触发的,所以顺序是最后的,所以只需要记得 keydown 优先级更高就行

1.4K20

jQuery 事件注册、事件处理

缺点: 普通的事件注册不能做事件委托,且无法实现事件解绑,需要借助其他方法。...2. selector: 元素的子元素选择器 。 3. fn:回调函数 即绑定在元素身上的侦听函数。 on() 方法优势1: 可以绑定多个事件,多个处理事件处理程序。...on() 方法优势3: 动态创建的元素,click() 没有办法绑定事件, on() 可以给动态生成的元素绑定事件 $(“div").on("click",”p”, function(){...}); // 2.点击的删除按钮,可以删除当前的微博留言li // 原来的方法 此时的click不能给动态创建的a标签添加事件 因为上面添加的a还没有触发..."click", "li"); // 解绑事件委托 如果有的事件只想触发一次, 可以使用 one() 来绑定事件。

3.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Vue.js巧妙运用修饰符,完成更好的交互,并且帮你后期维护代码省下大量的时间

    ,当点击了最里面的div时,事件冒泡到中间的div,但因为使用了修饰符 .self,所以它并没有调用事件的处理函数 .once 该修饰符表示事件只能被触发一次,我们来看例子 我们来点击类名为grandson的div,结果如下 div3被点击 div2被点击 这里,因为div2使用了修饰符 .stop,所以点击事件没有向上继续传递。...但其实使用时我们会发现这样一个情况,@keyup.alt.enter='keyUp',我们按住 alt ,再按住一个空格键或者tab键,然后按住回车键,也可以触发该事件。....native 该修饰符的作用比较简单,我就几句话描述一下吧 //父组件使用了一个名为child-cpn的子组件,并监听他的click事件,结果是没作用的 click='cpnClick...但只要我们在该事件后面使用修饰符 .natvie 就可以绑定上原始的事件了 //父组件使用了一个名为child-cpn的子组件,并监听他的click事件,成功绑定 click.native

    88010

    深度分析React源码中的合成事件2

    ,那是16版本及之前);事件一旦在id = root的DOM元素中委托,其实是一直在触发的,只是没有绑定对应的回调函数;图片 盗用一张官方图,按官方解释,之所以会将事件委托从document中移到id...它们分为三类:离散事件:discreteEvent,常见的如:click, keyup, change;用户阻塞事件:userBlocking,常见的如:dragEnter, mouseMove, scroll...事件派发上面提到,事件一旦在id = root的DOM元素中委托,其实是一直在触发的,只是没有绑定对应的回调函数。...并以该节点为孩子节点往上查找,找到包括该节点及以上所有的click回调函数创建dispatchListener,并添加到listeners数组中。...,所有的事件通过addEventListener委托在id=root的DOM元素上进行监听;在我们触发事件时,会进行事件合成,同类型事件复用一个合成事件类实例对象;最后进行事件的派发,执行我们代码中的事件回调函数

    64240

    深度分析React源码中的合成事件_2023-02-13

    ,那是16版本及之前);事件一旦在id = root的DOM元素中委托,其实是一直在触发的,只是没有绑定对应的回调函数;图片 盗用一张官方图,按官方解释,之所以会将事件委托从document中移到id...它们分为三类:离散事件:discreteEvent,常见的如:click, keyup, change;用户阻塞事件:userBlocking,常见的如:dragEnter, mouseMove, scroll...事件派发上面提到,事件一旦在id = root的DOM元素中委托,其实是一直在触发的,只是没有绑定对应的回调函数。...并以该节点为孩子节点往上查找,找到包括该节点及以上所有的click回调函数创建dispatchListener,并添加到listeners数组中。...,所有的事件通过addEventListener委托在id=root的DOM元素上进行监听;在我们触发事件时,会进行事件合成,同类型事件复用一个合成事件类实例对象;最后进行事件的派发,执行我们代码中的事件回调函数

    63360

    深度分析React源码中的合成事件

    ,那是16版本及之前);事件一旦在id = root的DOM元素中委托,其实是一直在触发的,只是没有绑定对应的回调函数;图片 盗用一张官方图,按官方解释,之所以会将事件委托从document中移到id...它们分为三类:离散事件:discreteEvent,常见的如:click, keyup, change;用户阻塞事件:userBlocking,常见的如:dragEnter, mouseMove, scroll...事件派发上面提到,事件一旦在id = root的DOM元素中委托,其实是一直在触发的,只是没有绑定对应的回调函数。...并以该节点为孩子节点往上查找,找到包括该节点及以上所有的click回调函数创建dispatchListener,并添加到listeners数组中。...,所有的事件通过addEventListener委托在id=root的DOM元素上进行监听;在我们触发事件时,会进行事件合成,同类型事件复用一个合成事件类实例对象;最后进行事件的派发,执行我们代码中的事件回调函数

    87910

    深度分析React源码中的合成事件_2023-03-01

    id = root的DOM元素中触发; React自身实现了一套事件冒泡捕获机制; React实现了合成事件SyntheticEvent; React在17版本不再使用事件池了(网上很多说使用了对象池来管理合成事件对象的创建销毁...,那是16版本及之前); 事件一旦在id = root的DOM元素中委托,其实是一直在触发的,只是没有绑定对应的回调函数; 图片 盗用一张官方图,按官方解释,之所以会将事件委托从document中移到id...它们分为三类: 离散事件:discreteEvent,常见的如:click, keyup, change; 用户阻塞事件:userBlocking,常见的如:dragEnter, mouseMove,...事件派发 上面提到,事件一旦在id = root的DOM元素中委托,其实是一直在触发的,只是没有绑定对应的回调函数。...并以该节点为孩子节点往上查找,找到包括该节点及以上所有的click回调函数创建dispatchListener,并添加到listeners数组中。

    62530

    分析React源码中的合成事件

    ,那是16版本及之前);事件一旦在id = root的DOM元素中委托,其实是一直在触发的,只是没有绑定对应的回调函数;图片 盗用一张官方图,按官方解释,之所以会将事件委托从document中移到id...它们分为三类:离散事件:discreteEvent,常见的如:click, keyup, change;用户阻塞事件:userBlocking,常见的如:dragEnter, mouseMove, scroll...事件派发上面提到,事件一旦在id = root的DOM元素中委托,其实是一直在触发的,只是没有绑定对应的回调函数。...并以该节点为孩子节点往上查找,找到包括该节点及以上所有的click回调函数创建dispatchListener,并添加到listeners数组中。...,所有的事件通过addEventListener委托在id=root的DOM元素上进行监听;在我们触发事件时,会进行事件合成,同类型事件复用一个合成事件类实例对象;最后进行事件的派发,执行我们代码中的事件回调函数

    70940

    React源码中的合成事件

    ,那是16版本及之前);事件一旦在id = root的DOM元素中委托,其实是一直在触发的,只是没有绑定对应的回调函数;图片 盗用一张官方图,按官方解释,之所以会将事件委托从document中移到id...它们分为三类:离散事件:discreteEvent,常见的如:click, keyup, change;用户阻塞事件:userBlocking,常见的如:dragEnter, mouseMove, scroll...事件派发上面提到,事件一旦在id = root的DOM元素中委托,其实是一直在触发的,只是没有绑定对应的回调函数。...并以该节点为孩子节点往上查找,找到包括该节点及以上所有的click回调函数创建dispatchListener,并添加到listeners数组中。...,所有的事件通过addEventListener委托在id=root的DOM元素上进行监听;在我们触发事件时,会进行事件合成,同类型事件复用一个合成事件类实例对象;最后进行事件的派发,执行我们代码中的事件回调函数

    67820

    浅谈JavaScript的事件(事件委托)

    需要事先为DOM对象指定事件处理程序,导致访问DOM的次数增多,会延迟整个页面的交互就绪时间。 事件委托   对事件处理程序过多的解决方案是使用事件委托。...事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。...通过元素id,为每个元素执行不同的if语句。 并不是所有的事件都适合使用事件委托,比较适用的事件是:mouseup、mousedown、click、keyup、keydown和keypress。...移除事件处理程序   前文已经讲过事件的添加以及事件的移除。对于页面的事件处理程序太多,会影响页面的性能,除了使用事件委托之外,还可以将一些事件移除。...innerHTML移除了该元素,但是元素的事件处理程序并没有移除,依然留在内存中。

    1.1K70

    vue之事件处理

    事件处理 事件的基本用法 使用v-on:xxx或@xxx绑定事件,其中 xxx 是事件名 事件的回调需要配置在methods对象中,最终会在vm上 methods中配置的函数,不要用箭头函数,否则 this...就不是vm了 methods中配置的函数,都是被 Vue所管理的函数,this 的指向是vm或组件实例对象 @click="demo"和@click="demo($event)"效果一致,但后者可以传参...:使用事件的捕获模式 self:只有event.target是当前操作的元素时才触发事件 passive:事件的默认行为立即执行,无需等待事件回调执行完毕 修饰符可以连续写,比如可以这么用:@click.prevent.stop...-- 事件的默认行为立即执行,无需等待事件回调执行完毕; --> 没有影响 --> <!...就是win键) 配合keyup使用:按下修饰键的同时,再按下其他键,随后释放其他键,事件才被触发,指定 ctr+y 使用 @keyup.ctr.y 配合keydown使用:正常触发事件 也可以使用keyCode

    10410

    4. Vue基本指令

    确实调用了btn的click()方法, 而且还调用了div的click()方法. 这是事件冒泡机制, 通常我们在页面是要避免这样的情况发生的. 所以会写一个方法阻止事件冒泡....-- submit 有自己的模式提交事件, 但通常我们不希望使用默认的提交时间, 而是使用我自定义的事件. --> 这时, 我们在调用方法, 发现不会自动跳转到action指定的事件了,...但是有个问题, 虽然调用了click指定的事件, 但是依然有事件冒泡, 同时还调用和div的click事件, 这个简单, 在增加阻止冒泡事件就可以了....-- submit 有自己的模式提交事件, 但通常我们不希望使用默认的提交时间, 而是使用我自定义的事件. --> ....keyup.enter="keyup" 在keyup事件后面增加.enter即可 .once: 只触发一次回调 增加了 .once的事件, 只有第一次点击有反应, 后面点击就没有反应了.

    8K10
    领券