2017-08-03 30 views
2

我試圖使用EventListener方法與click事件來簡單地添加一個元素到<ul>列表。我試圖在按鈕元素的節點上調用click事件的函數,但每次刷新/加載網站時都會調用該函數。javascript eventlistener立即啓動而不是事件

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

'elButton.addEventListener( '點擊',addElementToList,FALSE);' – Pointy

回答

3

當添加事件監聽器,

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

您呼叫的功能。改爲

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

你應該很好走。

0

你有什麼是addElementToList的結果(因爲該函數實際上被調用)的事件監聽器。不是方法本身。

爲了把方法本身要與無支架使用的名稱

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

,而不是

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

謝謝:)一個問題,但。如果我有一個函數需要賦予參數addElementToList(par a,par b),會發生什麼?我認爲帶參數的函數不會馬上返回結果嗎? –

+0

它會立即運行,參數將是'undefined'。 JS中的參數大多是一個建議而不是要求 –

相關問題