Передать значение переменной, а не ссылку на нее
Есть функция, она создает несколько div'ов в цикле и добавляет им событие на onclick:
function(picsNum){ for(var i = 0; i < picsNum; i++){ $('<div class="controls"></div>').click(function(){slide('slideTo', i)}).appendTo($controls); } } Так вот, в функцию передается не значение i, а ссылка на i, то есть внутри slide i всегда равно picsNum + 1, а не 1, 2, 3... picsNum. Как передать значение переменной, а не ссылку на нее? |
Читать http://javascript.ru/basic/closure
там и ваш пример разобран |
в jquery у событий есть data
function(picsNum){ for(var i = 0; i < picsNum; i++){ $('<div class="controls"/>').bind( 'click', { index : i }, function( event ){slide('slideTo', event.data.index)}).appendTo($controls); } } |
Часовой пояс GMT +3, время: 16:13. |