関数と要素がhtmlの一部であることがすでにわかっている場合、つまり動的に追加されない場合は、「addEventListener」などの追加のメソッド呼び出しを使用するのではなく、関数をインラインで追加する方が良い
注意すべきもう一つのこと
onclick はすべてのブラウザで機能しますが、addEventListener は古いバージョンの Internet Explorer では機能せず、代わりに attachEvent を使用します。
OnClickはDOM レベル 0のプロパティです。AddEventListenerは、DOM レベル 2定義の一部です。これについて読んでください: http://www.w3.org/TR/DOM-Level-2-Events/events.html
HTML タグ属性として追加されたインライン イベント ハンドラー。次に例を示します。
<a href="gothere.htm" onlick="alert('Bye!')">Click me!</a>
上記の手法は単純ですが、特定の欠点があります。要素ごとに 1 つのイベント ハンドラーしか持てません。さらに、インライン イベント ハンドラーを使用すると、JavaScript コードと HTML マークアップの分離が非常に不十分になります。
document.getElementById("my_id").addEventListener("onclick", my_JS_function, false);
この利点: 複数のイベント ハンドラーを追加できます。また、htmlとjavascriptコードを分離します
詳細については、これを読むことができます:イベントハンドラの追加