この質問は非常に基本的なものであり、似たようなものを探していたとしても、何かの複製であるに違いないと確信しています。
私の質問は基本的に:HTML要素のイベントハンドラーを最初に登録するのに最適な場所はどこですか?
イベントハンドラーを登録する最も簡単な方法は、明らかにインラインで行うことです。
<div id = "mybutton" onclick = "doSomething()">Click me</div>
しかし、これは、現代のWeb開発におけるロジックとコンテンツの分離に向けた圧倒的な行進に反しています。したがって、2012年には、すべてのロジック/動作は純粋なJavascriptコードで実行されることになっています。それは素晴らしいことであり、より保守しやすいコードにつながります。ただし、HTML要素をJavascriptコードに接続する初期フックが必要です。
通常、私は次のようなことをします。
<body onload = "registerAllEventHandlers()">
しかし...それはまだ「不正行為」ですよね-ここではまだインラインJavascriptを使用しているからです。しかし、他にどのようなオプションがありますか?ページがまだロードされていないため、その時点ではDOMにアクセスできないため<script>
、セクションのタグでそれを行うことはできません。<head>
<head>
<script type = "text/javascript">
var myButton = document.getElementById("mybutton"); // myButton is null!
</script>
</head>
ページの下部<script>
などにタグを付けますか?好き:
<html>
<body>
...
...
<script type = "text/javascript">
registerAllEventHandlers();
</script>
</body>
</html>
ここでのベストプラクティスは何ですか?