【发布时间】:2013-06-09 20:10:38
【问题描述】:
我正在寻找一个不使用 jQuery 的简单点击事件脚本,并找到了一些有用的代码。有了这个,我创建了我自己的代码变体,它有效,但有一件事我没有得到
[].forEach.call(document.querySelectorAll("a"), function (el) {
el.addEventListener("click", function (ev) {
ev.preventDefault();
this.style.backgroundColor = "grey";
})
});
此代码抓取网页上的所有<a>元素并添加一个将背景颜色更改为灰色的点击事件。
但是,我不明白为什么 forEach.call() 在数组 [] 为空时执行。
有人能解释一下这是如何工作的吗?
【问题讨论】:
-
关于性能的几点说明...querySelectorAll() 返回一个活动节点列表,因此每次访问它时都会重新运行查询。在使用 forEach 之前,最好先将其转换为数组。此外,如果您想在点击时设置链接样式,您可以随时在 CSS 中使用 a:active。
-
链接的样式已经完成,因此我可以在任何页面的 Web 控制台中运行它。
-
@Broxzier 够公平的 :)
标签: javascript