【发布时间】:2014-12-08 16:34:21
【问题描述】:
我知道如何使用 jQuery 来做到这一点,我也知道如何使用事件委托来做到这一点。但是你如何在纯 JavaScript 中做到这一点?
例如,如何将事件处理程序分配给一堆lis?
我看到var li = document.querySelectorAll('li');。返回一个类似数组的东西。你只是循环并分配处理程序吗?我觉得必须有更好的方法。如果不是,那么循环遍历类似数组的东西的最佳方法是什么(以及类似数组的东西叫什么?)?
【问题讨论】:
-
这是一个严肃的问题吗?是的,当你有一个集合,并且你想对集合中的每个元素应用一些行为时,你可以迭代集合并对单个成员进行操作。没有更好的办法。这正是 jQuery 所做的。
-
@squint 我想有一种方法可以做类似
li.<add listeners to each>的事情。我还在学习编程,但事后看来你说的很有道理。不过,我认为这对学生来说是一个完全可以理解的问题。 -
您可能应该使用委托而不是在循环中手动添加大量事件。您只需将点击(或其他)添加到 UL 而不是 LI,然后在处理程序中检查 e.target 而不是 this。
-
四个字的答案:“一次一个”。
标签: javascript javascript-events event-handling