0

我想知道在哪里附加 javascript 点击监听器的最佳实践是什么。即事件监听器应该放置在容器上还是单个按钮上?

例如 html 示例:

<div id="content">
    somecontent blah blaoh
    <button class="button1"></button>
    <button class="button2"></button>
    blah blah blah
    <table></table>
    more content...
</div>

1)如果我将点击监听器放在#content 上,那么当我点击该div 中的任何内容时,该事件将触发。因此,在事件处理程序中,我可以查看单击目标的类并执行正确的行为。2)或者我应该直接在 .button1 和 .button2 上附加事件监听器?

有什么优缺点等等。

谢谢。

4

3 回答 3

0

如果您想在单击.button1和单击时执行不同的操作,.button2请为每个按钮分配单独的事件处理程序以避免检查目标。如果您在单击任一按钮时执行相同的操作,您可以将事件处理程序分配给,div但是此时您确实需要质疑为什么您有两个按钮。

于 2013-03-12T00:34:53.513 回答
0

将其直接附加到按钮上。优点:

  • 这要容易得多
  • 每个人都使用它
  • 你不需要输入额外的代码来检查被点击的按钮
  • 没有理由不

没有人将事件处理程序应用于父级。我认为没有理由这样做,也从未见过任何这样做的代码,而且我从未想过要这样做。

然而,有一个小建议:在按钮而不是类上使用 id,因为向它们添加事件处理程序会更容易。

如果您有更具体的问题或有理由在父级上使用事件处理程序,请将其放在评论中。

于 2013-03-12T00:40:47.047 回答
0

我的简化答案我们看起来像这样

<div id="container1" onClick="doAction1()">
  <button id="A" class="buttonA" onClick="doActionA()"></button>
  <button id="B" class="buttonB" onClick="doActionB()"></button>
</div>

很快,我将为我的按钮 A 和 B 使用容器,以防我需要为两个事件触发相同的公共事件,并直接设置它们的本地事件。至少对我来说,检查混入事件并不方便。

于 2013-03-12T01:16:05.487 回答