我想知道在哪里附加javascript点击监听器的最佳做法是什么。 即,事件监听器应该放在容器上还是放在各个按钮上?
e.g。 示例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上附加事件监听器吗?
有什么优点和缺点。
感谢。
答案 0 :(得分:0)
如果要在单击.button1
和.button2
时执行不同的操作,请为每个按钮分配单独的事件处理程序,以避免检查目标。如果在单击任一按钮时执行相同的操作,您可以将事件处理程序分配给div
,但此时您确实需要质疑为什么有两个按钮。
答案 1 :(得分:0)
直接将其附加到按钮上。优点:
没有人在父级上应用事件处理程序。我认为没有理由这样做,从来没有看到任何代码那样做,而且我从未想过这样做。
但是有一点建议:在按钮而不是类上有id,因为向它们添加事件处理程序会更容易。
如果您有更具体的问题或有理由在父级上使用事件处理程序,请将其放在注释中。
答案 2 :(得分: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,以防万一我需要为这两个事件触发相同的共同点,并将直接设置它们的本地事件。至少对我来说,检查混入事件并不方便。