假设我有一些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参数。


请记住,这不一定完全是正在发生的事情,但是回答您的问题的关键是该参数来自其他位置(在本例中为浏览器),并传递给您指定的函数的调用。

09-19 17:12