假设我有一些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事件的信息.
所以想想它:
浏览器检测到链接上的单击
它创建一个"事件对象",其中包含有关事件的信息
它调用您使用"event object"作为参数指定的处理函数.你可以想像它有点像anchor.onclick(event_info)
,其中event_info
对应于e
你有参数handleControl
.
请记住,这不一定正是发生的事情,但回答您的问题的重点是该参数来自其他地方(在本例中为浏览器),并传递给您指定的函数的调用.