理解Pure JS中的事件附件代码
understanding event attachment code in Pure JS
嘿,伙计们,我是JS新手,基本上对Jquery有一点了解,所以我正在浏览这篇(纯Javascript中的Jquery)文章,他们有以下示例:
$('a').on('click', fn);
在本例中,我们将点击事件监听器附加到页面上的所有锚标记。
上面的Jquery代码重写如下:
[].forEach.call( document.querySelectorAll('a'), function(el) {
el.addEventListener('click', function() {
// anchor was clicked
}, false);
});
现在我明白call()如何在JS中工作,以及forEach如何在JS中工作,但我不明白[]
在forEach
前面做什么,很难理解上述代码中的执行顺序,也很难理解谁在function(el)
内部传递el
?
谢谢。
Alex-z .
[]
是Array.prototype
的快捷方式,所以它实际上是
Array.prototype.forEach.call( document.querySelectorAll('a'), callback );
它接受本地Array.prototype.forEach
,并使用querySelectorAll
的结果nodeList作为它的第一个参数,this
的值,以及作为第二个参数的回调函数来调用它。
这样调用它可以让我们传入非数组,比如"类数组"的对象,因为它们有一个长度属性,比如arguments
或nodeList,否则不能通过直接在对象上使用Array.forEach
来迭代对象。
相关文章:
- 如何将javascript事件从web浏览器wpf控件发送到wpf的c#代码
- php代码在textbox更改事件上显示null
- 如何在Win8Metro应用程序的Javascript代码中捕获自己的C#事件
- 访问代码生成的输入元素上的keyup事件
- 如何在 JavaScript 代码中调试点击事件处理
- 如何使用我的Jquery代码创建委托事件侦听器
- 如何使用onclick事件触发此代码.我尝试过,但失败了
- 在单击事件中,第一次单击时激发代码一次,其余代码在所有单击时运行
- 为什么动态加载的事件在我的代码中不能正常工作
- 我需要java代码来打开html代码onclick事件
- 使用Javascript代码在文本框上激发退格事件
- onbeforeunload事件在我的代码中没有触发,但其他示例可以工作
- 如何在onclick事件执行代码时在ImageButton上设置加载gif
- 在按钮'上运行PHP代码;s onclick事件,或者使用Ajax
- 我想在每个按钮点击事件上加载多个图表.我使用了下面的谷歌代码
- HTML5 嵌入代码 - 事件属性未触发(已触发、暂停等)
- 在ionicPopup完成加载后运行代码/事件
- 如何在添加键代码事件处理程序后删除它
- 调试JS/CoffeeScript代码:事件,回调等
- 当值更改时,用于表单文本字段的代码事件侦听器