2009-05-18 4 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' ни к чему. –

+0

Slide.thumbClick не может передавать аргументы. не спрашивайте меня, почему библиотека Core не поддерживает такой синтаксис. im n00b здесь. Мне как-то нужно получить доступ к этому значению num в другой функции. значение num определено в этой части, но если я получаю доступ к нему в любой другой функции, он отображает «неопределенное» значение. – amit

+0

Предупреждение JS0040: переменная num назначается, но никогда не используется в строке 3 :) – xtofl

ответ

1

Не помню точно, но вы должны быть в состоянии сделать что-то вроде этого:

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

вар Num все равно должны быть доступны для этой анонимной функции.

+0

Очень хороший намек. При нажатии «это» становится большим пальцем [i]. Slide.thumbclick, вероятно, предполагает другое. – xtofl

0

Один из способов сделать это - создать динамическую функцию.

Нечто подобное. (Я основывая это на мой опыт работы с другими языками ECMAScript на основе, вы можете перепроверить, чтобы убедиться, что это работает.)

for (var i=0; i<thumbs.length; i++) 
{ 
     var num = i; 
     Core.addEventListener(thumbs[i], "click", new function(evt){ 
      Slide.thumbClick(num); 
     }); 
} 
Смежные вопросы