我在onLoad上调用的函数内的HTMLElement上使用了一个addEventListner方法。但是,甚至在我在html页面中尝试click事件之前,该方法就会被执行。
function setConfigurationMenu(){
var navConfigure = document.querySelector(".navConfigure");
var navBody = navConfigure.querySelector(".body");
var navTop = navConfigure.querySelector(".top");
navTop.addEventListener("click", alert("jow"));
}
那么这里发生了什么,有什么想法吗?
THX,
答案 0 :(得分:1)
这是因为您传递函数result
而不是函数handler
,请尝试使用匿名函数:
navTop.addEventListener("click", function() {
alert("jow");
});
换句话说,在你的情况下你只需要调用函数,但是你需要为此传递处理程序。
答案 1 :(得分:1)
这种情况正在发生,因为您正在执行alert
函数并将其返回值(即undefined
)作为参数传递给addEventListener
方法。你实际上需要传递一个函数。
navTop.addEventListener("click", functionToBeTriggered);
由于alert
需要一个作为文本的参数,您可能希望将其包装到一个调用它的匿名函数中。例如:
navTop.addEventListener("click", function() {
alert("jow")
});