JS Dom事件绑定及解绑

痛定思痛。 2023-01-06 04:21 396阅读 0赞

1.行内式

  1. 在标签中直接通过on+事件类型 属性 去绑定事件

2.内联式

  1. 1)直接绑定匿名函数
  2. 2)先定义函数,再去绑定

3.监听

  1. addEventListener
  2. 语法:事件源.addEventListener("事件类型",事件处理函数);
  3. 使用监听,可以给同一个事件类型绑定多个事件处理函数。
  4. 多个事件处理函数执行顺序是按照绑定顺序来的
  5. 先绑定先执行
  6. IE低版本不支持
  7. attachEvent()
  8. IE低版本支持
  9. 语法:事件源.attachEvent("on+事件类型",事件处理函数);
  10. 多个事件处理函数的执行顺序是按照绑定顺序的倒序来的
  11. 先绑定后执行

注册事件

  1. eventTarget.addEventListener(type, listener[,useCapture])
  • evenTarget 表示要绑定事件的DOM元素
  • type 表示要绑定的事件,如:”click”
  • listener 表示要绑定的函数
  • useCapture 可选参数,表示是否捕获过程

NOTE:useCapture 为设定是否为捕获过程,默认事件均为冒泡过程,只有 useCapturetrue 时才会启用捕获过程。

  1. // 获取元素
  2. var elem = document.getElemenyById('id');
  3. // 事件处理函数
  4. var clickHandler = function(event) {
  5. // statements
  6. };
  7. // 注册事件
  8. elem.addEventListener('click', clickHandler, false);
  9. // 第二种方式,不建议使用
  10. elem.onclick = clickHandler;
  11. // 或者来弥补只可触发一个处理函数的缺陷
  12. elem.onclick = function(){
  13. clickHandler();
  14. func();
  15. // 其他处理函数
  16. };

取消事件

  1. eventTarget.removeEventListener(type, listener[,useCapture]);
  • evenTarget 表示要绑定事件的DOM元素
  • type 表示要绑定的事件,如:”click”
  • listener 表示要绑定的函数
  • useCapture 可选参数,表示是否捕获过程

    // 获取元素
    var elem = document.getElemenyById(‘id’);

    // 取消事件
    elem.removeEventListener(‘click’, clickHandler, false);

    // 第二种方式。不建议使用
    elem.onclick = null;

#

浏览器兼容型

以上均为 W3C定义的标准定义,但早期浏览器 IE8 及其以下版本,均没有采用标准的实现方式。不过这些低版本浏览器也提供了对于 DOM 事件的注册、取消以及触发的实现。

绑定兼容性写法:

  1. function f(event) {
  2. alert
  3. }
  4. // ele:触发事件的元素 type:事件类型 handler:事件处理函数
  5. function on(ele, type, handler) {
  6. if (ele.addEventListener) {
  7. ele.addEventListener(type, handler);
  8. } else {
  9. ele.attachEvent("on" + type, handler)
  10. }
  11. }

解除绑定兼容性写法:

  1. // ele:触发事件的元素 type:事件类型 handler:事件处理函数
  2. function j(ele, type, handler) {
  3. if (ele.removeEventlistener) {
  4. ele.removeEventlistener(type, handler);
  5. } else {
  6. ele.detachEvent("on" + type, handler)
  7. }
  8. }

发表评论

表情:
评论列表 (有 0 条评论,396人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JS事件

    开发工具与关键技术:DW 作者:文泽钦 撰写时间:2019年1月17日 目的:实现一些js简单绑定按钮事件 分享一些简单的js绑定事件给一些刚入门的网友玩玩,代码简

    相关 js事件

    原生的js绑定事件一般有两种: 第一种是: ele.onclick = fn(); 这种方法只能绑定一次,再次绑定就会把原来的监听覆盖掉,解除绑定也很简单