我不得不承认,我一直对“正确的”不显眼的 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
}
}();
那应该是可以代表的东西,对吧?所以我的困惑来自两个地方。
- 我应该从哪里调用 awesome.init()?
- 我觉得从 javascript 中引用控件 ID 是错误的,但在脚本中指定类并要求标记使用它们才能工作也感觉错误。应该怎么做?两者都让我觉得突兀。init() 函数是否应该采用类似
{button:'#primaryAction', result:'#resultText'}
但又回到 #1.. 应该从哪里调用 Init 的东西?
如果我从根本上做错了,请引导我走上这条路。