在单击HTML元素之前触发addEventListener

时间:2013-10-30 12:23:48

标签: javascript addeventlistener

我在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,

2 个答案:

答案 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")
});