我正在尝试将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
函数?
答案 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);