「適切な」目立たない JavaScript について、私はいつも少し混乱していたことを認めなければなりません。スクリプトをマークアップから移動したいということはわかりましたが、マークアップがスクリプトを参照しないようにします (もちろん、元のスクリプト参照以外は!)。しかし、これが実際にどのように機能するかわかりません。
マークアップがコードを参照しないようにする方法はわかりましたが、スクリプト内の DOM ID のハードコーディングが汚いと感じています。次に例を示します。
<script src="....awesome.js"></script>
<button id="primaryAction">Click me for something awesome!</button>
<labal id="resultText"></label>
//in awesome.js
awesome = function(){
init = function(){
//pretend we are doing something incredible here
//and then we hook the button up
$('#primaryAction').click(function(){
$('#resultText').val(result());
});
};
result = function(){
//here something awesome happens and we return the result
return "Joe";
};
return {
init: init
}
}();
それは、何ができるかをかなり代表するものでなければなりませんよね?したがって、私の混乱は2つの場所で発生します。
- awesome.init() はどこから呼び出せばよいですか?
- JavaScript からコントロール ID を参照するのは間違っていると思いますが、スクリプトで指定されたクラスを使用し、それを機能させるためにマークアップでそれらを使用する必要があるのも間違っていると感じています。それはどのように行われるべきですか?どちらも邪魔に感じます。init() 関数は次のようにする必要があります
{button:'#primaryAction', result:'#resultText'}
が、再び #1..Init をどこから呼び出す必要がありますか?
私がこれを根本的に間違っている場合は、私を道に導いてください。