将按钮绑定到javascript函数

将按钮绑定到javascript函数,javascript,html,Javascript,Html,我有一个html按钮: <button id="MyButton" onclick="return DoSomething()">Click Me</button> 点击我 将“onclick”属性放在html中还是使用javascript/DOM将回调附加到按钮单击中更好?通过javascript附加回调被认为更好。这属于“法律”的范畴。(这里更具体地说是行为与布局的分离) jQuery怎么样 完全从Javascript中执行此操作并保持标记干净是一种更好的做法。如

我有一个html按钮:

<button id="MyButton" onclick="return DoSomething()">Click Me</button>
点击我

将“onclick”属性放在html中还是使用javascript/DOM将回调附加到按钮单击中更好?

通过javascript附加回调被认为更好。这属于“法律”的范畴。(这里更具体地说是行为与布局的分离)

jQuery怎么样


完全从Javascript中执行此操作并保持标记干净是一种更好的做法。如果您使用的是一个单独的.js文件,那么您就不必担心HTML中内嵌js代码的问题

使用原始DOM非常简单:

document.getElementById( "MyButton" ).onclick = DoSomething;

支持表示和逻辑的分离,我建议您通过Javascript将事件绑定到它:

document.getElementById("MyButton").onclick = function(){
  alert("Button Clicked");
}

将Javascript和CSS从HTML中删除,您将成为一名更快乐的开发人员。这种方法允许程序员编写Javascript,让设计师构建结构和样式。您不希望将编程交给设计师(这是内联javascript所发生的事情)。

我使用
ondomready
事件分配我的所有事件,通常存储在单独的脚本中。我所有的逻辑都在一个地方,我的标记看起来也整洁多了。我认为标记只是用来描述页面的初始结构。代码存在于代码文件中,样式属于css文件。

您可以使用。单击(DoSomething)我实际上使用的是JQuery,但我将该问题作为一个通用的JS问题发布,以使其尽可能通用。@David Pfeffer,它使事情变得更加简单和压缩,它没有那么“大”。如果你想在以后的编码生活中把两条粘在一起,那就去吧。如果我觉得有必要的话,我会发布jQuery以获取答案。反对票很受欢迎。我坚持我的答案。JQuery如何增强这个答案?你的答案是3行,与普通答案相同,但要大23KB。我认为如果你要发布一个使用库的答案,你必须解释为什么不能使用纯js,或者为什么它更容易,或者为什么它更易于维护。对于最简单的答案,不需要jquery。但是,正如gmcalab所提到的,asker希望将其用于具有处理程序的所有元素。因为我使用了ext,我会告诉他们ext.addBehaviors非常适合这样做,并且会建议他们应该实现类似ext.addBehaviors的东西,如果这将被广泛使用并且他们不想要一个库的话。
document.getElementById( "MyButton" ).onclick = DoSomething;
document.getElementById("MyButton").onclick = function(){
  alert("Button Clicked");
}