在没有单击按钮的情况下,值将传递给函数

时间:2011-04-18 07:34:39

标签: 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+'">Afbeelding verbergen</button>';  
    knopdiv[i].onclick = hideMe(i, afb[i]);


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

输出而不点击:

0
1
2
3
4
5
6
7
8

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

1 个答案:

答案 0 :(得分:0)

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

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