Javascript Onclick vs addEventListener

Javascript Onclick vs addEventListener,javascript,events,addeventlistener,Javascript,Events,Addeventlistener,使用“onclick”“onmousedown”作为HTML元素的属性,我有点困惑 例如: <button onclick="my_JS_function()"></button> 什么是更“合适的”更受支持的方法?后者(addEventListener())是最好的方法,因为您可以将相同类型的多个事件附加到同一元素 通过分配给onclick等,您将覆盖现有的处理程序。如果您已经知道函数和元素是html的一部分,即不会动态添加,那么最好是内联添加函数,而不是使用额外的方

使用“onclick”“onmousedown”作为HTML元素的属性,我有点困惑

例如:

<button onclick="my_JS_function()"></button>
什么是更“合适的”更受支持的方法?后者(
addEventListener()
)是最好的方法,因为您可以将相同类型的多个事件附加到同一元素


通过分配给
onclick
等,您将覆盖现有的处理程序。

如果您已经知道函数和元素是html的一部分,即不会动态添加,那么最好是内联添加函数,而不是使用额外的方法调用,如“addEventListener”

另一件需要注意的事情

虽然onclick可以在所有浏览器中运行,但addEventListener不能在旧版本的Internet Explorer中运行,后者使用attachEvent

OnClick是一个DOM级别0属性AddEventListener是DOM级别2定义的一部分。请阅读以下内容:

作为HTML标记属性添加的内联事件处理程序,例如:

 <a href="gothere.htm" onlick="alert('Bye!')">Click me!</a> 
此事件的Advatange:您可以添加多个事件处理程序。还可以分离html和javascript代码


有关更多详细信息,您可以阅读以下内容:

但我可以执行一个调用其他函数的函数。。。为了避免“onclick”的问题,jquery addEventListener()中的@alex给出了错误,未捕获的TypeError:Object[Object Object]没有方法“addEventListener”??怎么办?@simmisimmi如果你有问题,你可以。当调试或维护这样的应用程序时,它的处理程序在逻辑上与按钮关联,正如它声明的内联。在这种情况下,内联声明使实现和维护变得容易。没有必要去弄清楚它是否还有其他附加的事件。请再次解释,在这个场景中,分离html和javascript有什么好处?
document.getElementById("my_id").addEventListener("onclick", my_JS_function, false);
 <a href="gothere.htm" onlick="alert('Bye!')">Click me!</a> 
document.getElementById("my_id").addEventListener("onclick", my_JS_function, false);