我想替换这个:
for( var i=0; i<elementArray.length; i++ )
elementArray[i].click(function(){
console.log("element clicked - selectedElementIndex = " + i);
});
用类似的东西:
for( var i=0; i<elementArray.length; i++ )
elementArray[i].click( onElementClick(i) );
function onElementClick( i ){
console.log("element clicked - selectedElementIndex = " + i );
}
我该怎么做? :)
最佳答案
因为(据我所知)点击处理程序不能接受参数,所以您需要创建一个函数,其中包含作用域中的变量,它应该看起来像这样:
for( ... ) {
elementArray[i].click( onElementClick(i) );
...
}
function onElementClick( id ){
return function() {
console.log("element clicked - selectedElementIndex = " + id );
}
}
关于javascript - 函数引用而不是函数体 - 在循环中(带参数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13504157/