Ваша проблема в том, что глобальная переменная (слайд), на которую вы ссылаетесь в функции initiateSlide (), устанавливается последней на момент запуска функции. Вы, вероятно, хотите использовать замыкания для поддержания состояния переменной. Как это:
$$('#slides li').each(function(i, n) {
setTimeout(function() { initiateSlide(i); }, n * 500)
});
function initiateSlide(i){
alert(i);
}
Примечание. Это также полностью устраняет необходимость в глобальном