javascript eventlistener会立即触发而不是事件

时间:2017-08-03 16:44:03

标签: javascript events onclicklistener

我正在尝试将EventListener方法与click事件一起使用,只需将一个元素添加到<ul>列表中。我试图在按钮元素的节点上使用click事件调用该函数,但每次刷新/加载网站时都会调用该函数。

function addElementToList() {
    var navigationPanel = document.getElementsByTagName('ul')[0];

    var newElementOnList = document.createElement('li');
    var newElementsText = document.createTextNode('About');

    newElementOnList.appendChild(newElementsText);
    navigationPanel.appendChild(newElementOnList);
}

var elButton = document.getElementById('myButton');
elButton.addEventListener('click', addElementToList(), false);

为什么每次刷新/加载网站时都会运行addElementToList函数?

2 个答案:

答案 0 :(得分:3)

添加事件监听器时,

elButton.addEventListener('click', addElementToList(), false);

您正在调用该函数。改为

elButton.addEventListener('click', addElementToList, false);

你应该好好去。

答案 1 :(得分:0)

您所拥有的是将addElementToList的结果(实际上正在调用该函数)添加到事件侦听器。不是方法本身。

要放置方法本身,您要使用不带括号的名称

elButton.addEventListener('click', addElementToList, false);

而不是

elButton.addEventListener('click', addElementToList(), false);