内联事件处理程序是否被视为不良做法?
例如: <button onclick=someFunction()>Click me!</button>
<button onclick=someFunction()>Click me!</button>
如果是这样,使用内联事件处理程序有哪些缺点?
这是一个坏主意,因为…
1)很长一段时间以来,人们一直在明智地强调内容,样式和脚本之间的清晰区分。用JS混淆HTML与此不一致。
2)更重要的是,您对事件的控制要少得多。特别:
您只能将每种类型的一个事件与DOM-零事件(即内联click事件)进行绑定,因此您不能拥有两个事件处理程序
click
如果以内联方式指定事件,则将JS指定为字符串(属性值始终为字符串),并在事件触发时进行评估。评价是邪恶的。
您将不得不引用命名函数。这并不总是理想的(事件处理程序通常采用匿名函数),并且对需要全局的函数有影响
简而言之,可通过专用addEventListenerAPI或jQuery等集中处理事件。
addEventListener