web之事件DOM0级与DOM2级事件绑定与解绑

256 阅读2分钟

4月更文第2天

web之事件DOM0级与DOM2级事件绑定与解绑

javascipt中DOM1级事件是默认不使用的,我们只需使用DOM0与DOM2级事件即可。 下面是部分代码:

先写两个按钮

input id="btnClick" value="点击按钮" type="button" input id="btnRemove" value="解除绑定" type="button"

获取到我们的按钮相应的信息

var btnClick=document.querySeletcor('#btnClick'); var btnRemove=document.querySelector('#btnRemove');

DOM0级事件的绑定与解绑

btnClick.onclick=function(){ alert(''我是DOM0级弹窗事件,我已经被绑定了!!!);}; 解绑:btnRemove.onclick=function() { btnClick.onclick=null;//此处是等于null时,绑定解除 } 一个事件只能定义一个事件处理程序。如果我们想要为同一个按钮添加多个click事件处理程序,就无法使用这种方式,并且他不支持事件冒泡和事件捕获。

DOM2级事件进行绑定与解除

function btnClickHander() { alert('DOM2级绑定事件'); }; //将函数执行代码写在外面时为了节省空间,内部执行代码多时有用,还可以进行代码模块化,给其他代码代码进行调用

btnClick.addEventListener('click', btnClickHander); btnRomve.addEventlistener('click',function(){ btnClick.addEventlistener('click',) }) 这种方式的好处是可以为同一个元素添加多个事件处理程序,并且可以精确地控制事件的执行顺序。 除了DOM0和DOM2级事件之外,JavaScript还提供了其他许多事件类型,例如:

  • mouseover:当鼠标指针移动到元素上方时触发。
  • keydown:当按下任意键时触发。
  • load:当页面加载完成时触发。
  • submit:当表单被提交时触发。
  • resize:当浏览器窗口大小改变时触发。

DOM0与DOM2比较

DOM2级事件在大多数情况下优于DOM0级事件,但在特殊情况下DOM2级事件的性能会比DOM0级事件差。如:

  1. 事件处理程序数量较多:如果为同一个元素添加了大量的事件处理程序,那么DOM2级事件的性能可能会比DOM0级事件差,因为DOM2级事件需要维护一个事件处理程序列表。这时,可以使用事件委托来减少事件处理程序的数量。
  2. 在移动端设备上使用:由于硬件和软件的限制,DOM2级事件的性能可能会比DOM0级事件差。

DOM2级事件在大多数情况下是优于DOM0级事件的,但在有些情况下,DOM0级事件可能更适合。