功能即使没有点击也能执行?

时间:2013-12-24 05:16:07

标签: javascript

我正在使用javaScript创建一个Web应用程序,在一个部分中,动态生成一个列表。我想让每个列表项都可以点击并执行一个函数。

无论如何,我注意到该功能在页面加载时自动执行,即使没有点击也是如此,当我稍后点击它时,没有任何反应。

以下是代码:

window.onload=function loadData(){
var goalsStr = localStorage.getItem("goalsNames");
var goalsObj = JSON.parse(goalsStr);
if (goalsObj !== null)
for(var i=0; i<goalsObj.length; i++){
    var node = document.createElement("LI");
    node.setAttribute("draggable", "true");
    node.setAttribute("id","i");
    var textnode = document.createTextNode(goalsObj[i]);
    node.appendChild(textnode);                 
    node.addEventListener('click', viewGoal(goalsObj[i]), false);
    document.getElementById("sortable").appendChild(node);  
    }
} 
function viewGoal(goal){
alert("this should not happen");
}

我甚至尝试过使用.setAttribute('onclick',方法,但这也没有用。有什么问题?我该怎么办?

1 个答案:

答案 0 :(得分:5)

当你添加事件监听器时,你需要传入一个函数,意思是,不要包含() - 否则它会立即执行!

node.addEventListener('click', function() {
    viewGoal(goalsObj[i])
}, false);