为什么内联事件处理程序在现代语义HTML中是一个坏主意?
内联事件处理程序是否被认为是不好的做法?
例如: <button onclick=someFunction()>Click me!</button>
如果是这样,使用内联事件处理程序的缺点是什么?
这是一个坏主意,因为…
1)长期以来,对内容,风格和脚本之间的明确分割已经有了合理的重点。 用JS混合你的HTML不符合这个。
2)更重要的是,你对事件的控制要less得多。 特别:
-
你可以只绑定一个DOM-zero事件(这是内联的事件)的事件,所以你不能有两个
click
事件处理程序 -
如果一个事件被内联指定,则JS被指定为一个string(属性值总是string),并在事件触发时进行评估。 评价是邪恶的。
-
你面临着不得不引用命名的function。 这并不总是理想的(事件处理程序通常采用匿名函数),并且影响到需要成为全局的函数
简而言之,通过专用的addEventListener
API或通过jQuery等来集中处理事件。