Javascript 值传递给函数,而无需我单击按钮

Javascript 值传递给函数,而无需我单击按钮,javascript,Javascript,当我尝试在单击按钮时传递值时,该值无论如何都会被传递(即使我没有单击按钮)。这是不应该发生的,因为我只想在单击按钮时隐藏图像 为什么会这样 for ( i = 0; i < divs.length;i++){ knopdiv[i] = document.createElement('div'); divs[i].appendChild(knopdiv[i]); knopdiv[i].innerHTML = '<button id="knop' +i

当我尝试在单击按钮时传递值时,该值无论如何都会被传递(即使我没有单击按钮)。这是不应该发生的,因为我只想在单击按钮时隐藏图像 为什么会这样

for ( i = 0; i < divs.length;i++){  
    knopdiv[i] = document.createElement('div');  
    divs[i].appendChild(knopdiv[i]);  
    knopdiv[i].innerHTML = '<button id="knop' +i+'">Afbeelding verbergen</button>';  
    knopdiv[i].onclick = hideMe(i, afb[i]);


function hideMe(nummer, afb){
console.log (nummer);
}

为什么控制台不只是传递点击按钮的数量

knopdiv[i].onclick=hideMe(i,afb[i])执行此语句时,
hideMe()
被激发
将其更改为:

knopdiv[i].onclick = (function(i, element){
    return function(){
        hideMe(i, element);
    };
})(i, afb[i]);

请发布完整的代码并对其进行格式化。为什么您认为应该填充输出?+1这将调用hideMe,而不是将其指定为处理程序。应该是knopdiv[i].onclick=hideMe;将其指定为handler@wong2:检查打字
function
@ben当你这样做时,notting会通过吗?我还在学习,如果这些是新手,我很抱歉questions@Jarco没错,如果你只使用
xx.onclick=hideMe没有传递任何内容。您必须将调用
hideMe(i,afb[i])
的函数传递给
onclick
@wong2。不,我给了你+1,有人给了你-1。我发现-1非常不公平
knopdiv[i].onclick = (function(i, element){
    return function(){
        hideMe(i, element);
    };
})(i, afb[i]);