浅谈JavaScript事件绑定的常用方法及其优缺点分析

 更新时间:2016年11月01日 08:40:11   投稿:jingxian  
下面小编就为大家带来一篇浅谈JavaScript事件绑定的常用方法及其优缺点分析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

传统方式 

  element.onclick = function(e){

     // ...

   };

 1.  传统绑定的优点

非常简单和稳定,可以确保它在你使用的不同浏览器中运作一致

处理事件时,this关键字引用的是当前元素,这很有帮组

2. 传统绑定的缺点

传统方法只会在事件冒泡中运行,而非捕获和冒泡

一个元素一次只能绑定一个事件处理函数。新绑定的事件处理函数会覆盖旧的事件处理函数

事件对象参数(e)仅非IE浏览器可用

W3C方式 

 element.addEventListener('click', function(e){

    // ...

  }, false);

1. W3C绑定的优点

该方法同时支持事件处理的捕获和冒泡阶段。事件阶段取决于addEventListener最后的参数设置:false (冒泡) 或 true (捕获)。

在事件处理函数内部,this关键字引用当前元素。

事件对象总是可以通过处理函数的第一个参数(e)捕获。

可以为同一个元素绑定你所希望的多个事件,同时并不会覆盖先前绑定的事件

2. W3C绑定的缺点

IE不支持,你必须使用IE的attachEvent函数替代。

IE方式

element.attachEvent('onclick', function(){

    // ...

  });

1. IE方式的优点

可以为同一个元素绑定你所希望的多个事件,同时并不会覆盖先前绑定的事件。

2. IE方式的缺点

IE仅支持事件捕获的冒泡阶段

事件监听函数内的this关键字指向了window对象,而不是当前元素(IE的一个巨大缺点)

事件对象仅存在与window.event参数中

事件必须以ontype的形式命名,比如,onclick而非click

仅IE可用。你必须在非IE浏览器中使用W3C的addEventListener

Dean Edwards的方案(addEvent/removeEvent库)   

1. addEvent的优点

可以在所有浏览器中工作,就算是更古老无任何支持的浏览器

this关键字可以在所有的绑定函数中使用,指向的是当前元素

中和了所有防止浏览器默认行为和阻止事件冒泡的各种浏览器特定函数

不管浏览器类型,事件对象总是作为第一个对象传入

2. addEvent的缺点

仅工作在冒泡阶段(因为它深入使用事件绑定的传统方式)

以上就是小编为大家带来的浅谈JavaScript事件绑定的常用方法及其优缺点分析全部内容了,希望大家多多支持脚本之家~

相关文章

  • javascript判断是否按回车键并解决浏览器之间的差异

    javascript判断是否按回车键并解决浏览器之间的差异

    这篇文章主要介绍了javascript如何判断是否按回车键并解决浏览器之间的差异问题,需要的朋友可以参考下
    2014-05-05
  • 细述Javascript的加法运算符的具体使用

    细述Javascript的加法运算符的具体使用

    这篇文章主要介绍了细述Javascript的加法运算符的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • JS中的forEach、$.each、map方法推荐

    JS中的forEach、$.each、map方法推荐

    下面小编就为大家带来一篇JS中的forEach、$.each、map方法推荐。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-04-04
  • 微信小程序出现wx.getLocation再次授权问题的解决方法分析

    微信小程序出现wx.getLocation再次授权问题的解决方法分析

    这篇文章主要介绍了微信小程序出现wx.getLocation再次授权问题的解决方法,结合实例形式分析了解决wx.getLocation再次授权问题的相关操作步骤,需要的朋友可以参考下
    2019-01-01
  • Three.JS实现三维场景

    Three.JS实现三维场景

    这篇文章主要为大家详细介绍了Three.JS实现三维场景,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • 原生JavaScript实现AJAX、JSONP

    原生JavaScript实现AJAX、JSONP

    本篇文章将会讲解原生JavaScript如何实现简单的AJAX,还有跨域请求JSONP。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-02-02
  • 完美实现js选项卡切换效果(一)

    完美实现js选项卡切换效果(一)

    这篇文章主要为大家详细介绍如何完美实现js选项卡切换效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 基于微前端qiankun的多页签缓存方案实践

    基于微前端qiankun的多页签缓存方案实践

    这篇文章主要介绍了基于微前端qiankun的多页签缓存方案实践,本文对qiankun框架的使用没有做太多的发散总结,官网和Github上已经有很多相关问题的总结和踩坑经验可供参考,需要的朋友可以参考下
    2022-08-08
  • js如何获取图片url的Blob值并预览示例代码

    js如何获取图片url的Blob值并预览示例代码

    这篇文章主要给大家介绍了关于js如何获取图片url的Blob值并预览的相关资料,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • H5 js点击按钮复制文本到粘贴板

    H5 js点击按钮复制文本到粘贴板

    这篇文章主要为大家详细介绍了H5 js点击按钮复制文本到粘贴板,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11

最新评论