我想替换为:

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 );
   }
}

07-26 05:34