我应该停止使用HTML事件处理程序属性吗

用户名

我应该停止使用HTML事件处理程序属性并一直使用addEventListener()吗?

例子:

<button id="mybutton">Click me</button>
<script>
     var b = document.getElementById("mybutton");
     b.onclick = function() { alert("Thanks for clicking me!"); };
     b.addEventListener("click", function() { alert("Thanks again!"); }, false);
</script>

我的意思是我应该停止使用onclickonchange等,并开始使用addEventListener()呢?

TJ人群

“应该”会导致基于意见的答案。:-)

客观地讲,使用的优势在于addEventListener

  1. 同一元素上的同一事件可以有多个处理程序。

  2. 您可以更有效地将JavaScript与HTML分离。仍然存在通过结构选择器或其他选择器间接地找到元素的耦合,但是至少HTML不再对JavaScript有任何了解。通过在HTML和JavaScript之间定义契约(例如,需要添加内容的按钮具有一个add-btn类或类似类),您可以让不同的团队来处理HTML和JavaScript,而无需了解更多契约。

缺点是,除非您使用一个为您抽象化浏览器差异的库,否则您就可以忽略IE8(并且仍被大量人使用IE8(截至2013年11月Net Applications占21.7%Stat Counter表示8.65)。 % ],只有利基网站可以忽略它),您必须自己处理addEventListener/attachEvent麻烦。这很简单,hookEvent您可以使用一个功能或类似功能,但这是一个缺点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我应该完全停止使用内联JavaScript吗?

来自分类Dev

如果我想为GWT 3做准备,应该停止使用GSS等吗?

来自分类Dev

停止使用radioButton CheckedChanged事件再次调用函数吗?

来自分类Dev

停止使用radioButton CheckedChanged事件再次调用函数吗?

来自分类Dev

我可以完全停止使用datetime.date吗?

来自分类Dev

单页应用程序:如果我没有将表单值发布到服务器并且我没有使用任何 HTML 验证,我可以停止使用 <form> 标签吗?

来自分类Dev

Firebase-在我的特定情况下,我应该停止使用匿名身份验证吗?(此外,如何删除用户)

来自分类Dev

聚合应该是事件处理程序吗

来自分类Dev

事件处理程序应该引起人们的注意吗?

来自分类Dev

我应该使用事件处理程序还是演员来添加游戏的键盘控件

来自分类Dev

我应该使用哪个处理程序或线程?

来自分类Dev

我们可以停止使用字符串的 while 函数吗?

来自分类Dev

我应该为图像处理程序使用numpy吗?为什么

来自分类Dev

我应该使用HTML属性或类在输入字段上指定状态吗?

来自分类Dev

我不应该在html中使用数据属性吗?

来自分类Dev

可以让我的事件处理程序立即返回吗?

来自分类Dev

停止使用文件

来自分类Dev

我应该在angularjs应用程序中为HTML元素使用Ids吗

来自分类Dev

我应该在angularjs应用程序中为HTML元素使用Ids吗

来自分类Dev

我应该对可选的但永不失败的事件使用承诺吗?

来自分类Dev

我应该使用window.onload事件吗

来自分类Dev

当开始/停止使用设备的相机应用程序中听到的AVCaptureMovieFileOutput录制视频时播放相同的声音吗?

来自分类Dev

当开始/停止使用设备的相机应用程序中听到的AVCaptureMovieFileOutput录制视频时播放相同的声音吗?

来自分类Dev

使用相同的处理程序停止委托内的事件

来自分类Dev

应该使用sagas来保持处理程序执行的进度吗?

来自分类Dev

HTML 5 Canvas事件处理程序正常工作吗?

来自分类Dev

Ubuntu 18.04停止使用NVIDIA驱动程序

来自分类Dev

Ubuntu 18.04停止使用NVIDIA驱动程序

来自分类Dev

Ubuntu 15.10停止使用WiFi驱动程序

Related 相关文章

  1. 1

    我应该完全停止使用内联JavaScript吗?

  2. 2

    如果我想为GWT 3做准备,应该停止使用GSS等吗?

  3. 3

    停止使用radioButton CheckedChanged事件再次调用函数吗?

  4. 4

    停止使用radioButton CheckedChanged事件再次调用函数吗?

  5. 5

    我可以完全停止使用datetime.date吗?

  6. 6

    单页应用程序:如果我没有将表单值发布到服务器并且我没有使用任何 HTML 验证,我可以停止使用 <form> 标签吗?

  7. 7

    Firebase-在我的特定情况下,我应该停止使用匿名身份验证吗?(此外,如何删除用户)

  8. 8

    聚合应该是事件处理程序吗

  9. 9

    事件处理程序应该引起人们的注意吗?

  10. 10

    我应该使用事件处理程序还是演员来添加游戏的键盘控件

  11. 11

    我应该使用哪个处理程序或线程?

  12. 12

    我们可以停止使用字符串的 while 函数吗?

  13. 13

    我应该为图像处理程序使用numpy吗?为什么

  14. 14

    我应该使用HTML属性或类在输入字段上指定状态吗?

  15. 15

    我不应该在html中使用数据属性吗?

  16. 16

    可以让我的事件处理程序立即返回吗?

  17. 17

    停止使用文件

  18. 18

    我应该在angularjs应用程序中为HTML元素使用Ids吗

  19. 19

    我应该在angularjs应用程序中为HTML元素使用Ids吗

  20. 20

    我应该对可选的但永不失败的事件使用承诺吗?

  21. 21

    我应该使用window.onload事件吗

  22. 22

    当开始/停止使用设备的相机应用程序中听到的AVCaptureMovieFileOutput录制视频时播放相同的声音吗?

  23. 23

    当开始/停止使用设备的相机应用程序中听到的AVCaptureMovieFileOutput录制视频时播放相同的声音吗?

  24. 24

    使用相同的处理程序停止委托内的事件

  25. 25

    应该使用sagas来保持处理程序执行的进度吗?

  26. 26

    HTML 5 Canvas事件处理程序正常工作吗?

  27. 27

    Ubuntu 18.04停止使用NVIDIA驱动程序

  28. 28

    Ubuntu 18.04停止使用NVIDIA驱动程序

  29. 29

    Ubuntu 15.10停止使用WiFi驱动程序

热门标签

归档