假设我有一些HTML锚元素,并且我想为每个元素设置一个处理程序。
window.onload = function() {
// I select all of the anchors
var myAnchors = document.querySelectorAll("a");
// I iterate through the anchors and set a handler to each of them
for (var i = 0; i < myAnchors.length; i++) {
myAnchors[i].onclick = handleControl;
}
}
function handleControl(e) {
var id = e.target.getAttribute("id");
}
我不明白如何设置处理程序将参数传递给
handleControl
函数。换句话说,myAnchors[i].onclick = handleControl;
如何将值e
传递给处理程序?我从JavaScript编程书中获得了这段代码。
最佳答案
没有。基本上,您说的是在某个时间点值可用时应使用什么功能。因此,例如,您说的是,单击链接时,应调用您指定的函数handleControl
。参数e
由浏览器传递给它,它表示有关click事件的信息。
所以想像一下:
浏览器检测到对链接的单击
它创建一个“事件对象”,其中包含有关事件的信息
它调用以“事件对象”作为参数指定的处理函数。您可以想象它的作用类似于anchor.onclick(event_info)
,其中event_info
对应于e
上的handleControl
参数。
请记住,这不一定完全是正在发生的事情,但是回答您的问题的关键是该参数来自其他位置(在本例中为浏览器),并传递给您指定的函数的调用。