假设我有这样的标记:
<form action="foo">
<input name="bar" />
<button type="button">Save</button>
</form>
<script>
function baz() {
// Submit form via AJAX
}
</script>
将其添加到<button>
:
onclick="baz()"
或将其添加到<script>
(假设jQuery):
$(function(){
$('button').on('click', baz);
});
我看到很多关于禁止内联javascript的最佳做法,我倾向于同意。但是我想知道文档加载/准备好的手动接线是否会混淆正在发生的事情,因为当使用onclick =“baz”时它会删除所存在的所述接线的上下文。
是否存在可维护性问题?这两种方法的其他优缺点是什么?我的问题是关于使用内联javascript的这一特定方面的行业共识是什么(鉴于一般情况下它不是一个好的编码实践)?
答案 0 :(得分:5)
第二种方式被认为更好
$(function(){
$('button').on('click', baz);
});
它被称为Unobtrusive JavaScript,您可以在其中将功能/行为与页面结构分开。
答案 1 :(得分:0)
作为一名专业开发人员,我完全不相信第二种方法可以解决页面结构中的javascript问题。它们在功能上是等价的,并且添加不必要的抽象层只会混淆问题。
功能对等:
更重要的是,他们每个人都有自己的问题。我支持内联javascript,原因如下: