<p>
<p>
内联 onclick 属性与事件侦听器
<p>许多开发人员更喜欢使用内联事件处理程序来简化和易于调试,如下所示code:
<p>不过一般建议使用事件监听器<p>
事件监听器的优点<p>事件监听器的主要优点在于分离表示和逻辑。内联事件处理程序直接将代码嵌入 HTML 中,这可能会使代码库不必要地混乱且难以维护。<p>内联事件处理程序的评估会出现一个更重要的问题。这些事件处理程序访问其祖先元素和元素本身的属性,即使根据作用域规则不应进行此类访问。<p>例如,考虑以下 HTML:
<form>
<input name="foo" />
<button type="button" onclick="console.log(foo); console.log(window.foo);">
Click me
</button>
<div onclick="console.log(foo);">Click me as well!</div>
</form>
登录后复制
<p>当您单击按钮或
时,将记录 foo 输入字段的值,尽管事实上 foo 应该超出这些事件处理程序的范围。这种异常行为可能会导致错误和意外结果。<p>通过使用事件侦听器,例如:
document.getElementById('element').onclick = doSomething;
登录后复制
<p>您可以显式定义事件处理函数及其范围,从而防止这些评估异常和确保更可预测的代码行为。
以上是内联 onclick 属性或事件侦听器:哪个更适合处理事件?的详细内容。更多信息请关注PHP中文网其他相关文章!