美文网首页
绑定事件的覆盖

绑定事件的覆盖

作者: Marshall3572 | 来源:发表于2021-07-10 17:57 被阅读0次

使用onclick给按钮连续绑定了两次事件,会调用两次么?如果换成addEventListener呢?
如果将一个函数对象赋值给一个onClick属性,那么这个onClick就会指向这个函数,后面再给这个onClick属性赋值的时候,onClick就指向了后边那个函数,前边的函数会被垃圾回收掉

在通常情况下,如果要为单个事件注册多个事件处理程序,那么只有最后注册的那个事件处理程序才会起作用。这是因为在DOM中,为HTML元素的一个事件指定事件处理程序时,这个事件处理程序会成为该元素的一个属性,如果为一个属性赋值,这个属性就会有这个值,可是如果再继续为这个属性赋值呢?很简单,这个属性就会有新值,原来的值就被覆盖了。所以,只有最后注册的那个事件处理程序才会起作用。为了解决这个问题,我们可以使用DOM Level 2模型的addEventListener()方法。

addEventListener("事件名(不用加on)",事件处理程序,Bool(指示是完成事件冒泡(false)还是事件捕获(true),通常情况下使用false))。
这个事件是DOM Level 2模型的新方法,所以支持该模型的浏览器都可以使用这个方法,但是,在ie浏览器中,并不支持addEventListener方法,不过不用担心,我们可以使用attachEvent("事件名(加on)",事件处理程序),作用是一样的。

使用了事件监听之后,我们并不能确定事件处理程序的调用顺序与其增加顺序一致,因为事件监听者并不会以某种特定的顺序调用事件处理程序,我们要确保事件处理程序不依赖于所调用的顺序。

相关文章

  • 绑定事件的覆盖

    使用onclick给按钮连续绑定了两次事件,会调用两次么?如果换成addEventListener呢?如果将一个函...

  • 12、JavaScript-事件

    每天一句 : 让思考成为一种习惯。 一、事件捕获 事件绑定方式一(同一事件会被覆盖) 事件绑定方式二(同一事件可以...

  • js 中事件绑定

    事件绑定 onclick -->事件冒泡,重写onclick会覆盖之前属性,没有兼容性问题。 addEventLi...

  • JS示例35-事件绑定方式二

    一、知识要点 可以重复绑定相同事件,避免事件被覆盖 二、源码参考 封装

  • DOM 绑定事件以及事件在for循环里解决闭包方法

    绑定事件处理函数的方法一、缺点同一个元素只能绑定一个事件处理函数,相同的会被覆盖 解除事件处理程序element....

  • JS的事件绑定

    绑定事件 onclick,无兼容性问题,但是多次绑定会互相覆盖 addEventListener,w3c的标准方式...

  • js下DOM 事件的一些方法

    事件的绑定和解绑 这是最常用的为对象绑定事件的方法。但是只能给一个对象绑定一个相同时间,想绑定第二个会覆盖。在Js...

  • JavaScript事件

    如果需要覆盖系统绑定的事件,只要在函数的最后写上 return false 即可 点击事件 onclick 键盘按...

  • DOM0级事件和DOM2级事件的区别

    1.DOM0事件 1.1. DOM0级事件绑定 会存在覆盖的问题;下边的代码会把上边的代码覆盖1.2. 分为两种:...

  • jQuery-02

    事件绑定 js 可以添加多个相同或不同类型的事件,不会覆盖,都会执行。 eventName(fn) 推荐注意:部...

网友评论

      本文标题:绑定事件的覆盖

      本文链接:https://www.haomeiwen.com/subject/dgncpltx.html