2009-05-18 64 views
0
for (var i=0; i<thumbs.length; i++) 
     { 
      var num = i; 
      Core.addEventListener(thumbs[i], "click", Slide.thumbClick); 
     } 

在上面的代碼中,我想將var num的值傳遞給thumbClick eventlistener。但我無法。如果我嘗試顯示該值,它會給出一個未定義的值。 請幫助將值傳遞給eventListener函數

+0

我不明白...那是什麼ISN代碼沒有工作?通過上面的代碼,你不會把`num`傳遞給任何東西。 – 2009-05-18 00:16:38

+0

Slide.thumbClick無法傳遞參數。不要問我爲什麼Core庫不支持這樣的語法。這裏是一個n00b。 我以某種方式需要在其他函數中訪問此num值。 num值是在這部分中定義的,但是如果我在任何其他函數中訪問它,它會顯示「未定義」值。 – amit 2009-05-18 05:48:27

回答

1

不記得是肯定的,但你應該能夠做這樣的事情:

Core.addEventListener(thumbs[i], "click", function() { 
    //...do stuff here 
}); 

VAR NUM仍然應該提供給該匿名函數。

0

這樣做的一種方法是創建一個動態函數。

就是這樣。 (我在我與其他基於ECMAScript的語言經驗基礎這一點,你可能要仔細檢查,以確保其工作原理。)

for (var i=0; i<thumbs.length; i++) 
{ 
     var num = i; 
     Core.addEventListener(thumbs[i], "click", new function(evt){ 
      Slide.thumbClick(num); 
     }); 
}