【发布时间】:2013-12-27 10:27:55
【问题描述】:
Javascript高手,看看这段代码:
<button onclick="handler()">ClickMe</button>
<script>
function handler() {
alert("clicked");
}
</script>
为什么 onclick 事件应该分配给带有 () onclick="handler()" 的处理程序? 在这种情况下,警报被调用。但根据描述为类似问题https://stackoverflow.com/a/3247044/2543590onclick 的答案的逻辑,分配给函数处理程序的结果,而不是函数本身。 我相信将 onclick 分配给功能应该是这样的
onclick="handler",
但在这种情况下警报不会被调用。 为什么?
【问题讨论】:
-
JavaScript 专家会告诉你不要在标记中绑定内联事件处理程序。
-
一个使用内联处理程序有用的例子是当你需要确保元素可用和元素完全正常运行之间没有延迟。这不会经常发生,但内联处理程序很好地解决了这个问题。大师会告诉你使用正确的工具来完成这项工作。
-
“大师”会告诉您了解不同设计决策的后果,然后根据一些“最佳”标准选择最适用于某种情况的决策。
标签: javascript javascript-events