这里有一个引用代码:https://jsfiddle.net/x0k5dx8w/8/
据我了解: 事件处理程序(例如addEventListener)将事件对象传递到调用函数的参数中。
(eg; document.getElementbyId("idname").addEventListener("click", function(eventobj),
本质上是说
document.getElementbyId("id").addEventListener("click", function(idname));
现在我对两件事感到困惑,不给事件函数参数命名与给它命名有什么区别?
最后, 为什么你不能这样做:
function eventFunc() {
var object1 = document.getElementById("object1");
if( object1.target =..... ) {
// do something
}
}
最佳答案
您发布的语法无效。让我们回顾一下如何处理事件。
安event handler是一个采用 Event
的函数对象作为参数:
function handleClick(event) {
let elementClicked = event.target;
console.log('You clicked', elementClicked);
}
Event
有几个有用的属性和方法。 target
是最常访问的,但了解 preventDefault()
和 stopPropagation()
也很重要。
要将监听器附加到元素,请使用 addEventListener
:
let someElement = document.querySelector('button')
someElement.addEventListener('click', handleClick)
要删除它,请使用 removeEventListener
,将给定 addEventListener
的相同函数对象传递给 addEventListener
(不是复制、包装或内联函数:相同的函数对象):
someElement.removeEventListener('click', handleClick)
为了将来的引用,请查看 Mozilla 的 MDN(此答案中的所有链接都来自该网站),这是一个很棒的资源。
干杯!
关于javascript - 我对事件函数中的参数感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37572309/