Rusnire: из этого состоит Javascript =) любой метод любого класса - функция в функции. Да и если обобщить: в JS всё является объектами, то есть всё состоит из объектов, заключённых в объекты.
По теме: никто не запрещает ни исполнять функции в других функциях, ни определять. Можно даже исполнить функцию внутри неё самой - это и есть замыкание(closure) в JS.
Блестяще и лаконично. Для ясности можно ещё добавить, что операции в JS производятся последовательно(и в циклах, и в чейнинге jQuery, и просто в теле функции), но асинхронно. Т.е., если две операции записаны последовательно, то и выполняться сначала начнёт первая, а потом — вторая. Но вторая не будет ждать, пока первая завершиться. Именно поэтому setTimeout(), в данном случае, необходим.
ну вообще, for работает порядком быстрее, чем .each(). так что, если не нужны коллбэки, лучше использовать встроенные циклы JS. habrahabr.ru/post/103296
@unclechu факт, использование Compass - это опция для grunt-contrib-sass и gulp-sass. так что всё связывается очень прозрачно. И запомните, есть один хорошо работающий SASS - это Ruby Sass.
@unclechu так, подождите, вы хотите, чтоб на хостинге у вас стили лежали в виде SASS и компилились на лету? Если так, то Ruby, конечно не вариант. По поводу Stylus, да есть какие-то библиотеки(типа nib). Но самая большая красота Stylus - это прозрачные миксины, так что написать свои велосипеды не составит особого труда. Я просто оставлю тут это - habrahabr.ru/company/yandex/blog/169415
@unclechu любой модуль, переписанный сообществом на другом языке, будет отставать по версиям и возможностям от оригинального. Ничего сложного в установке Ruby нет. Прицепить SASS к сборщику тоже легко. А возможностей у него на порядок больше, чем у Less. Хотя, если не хочется ставить Ruby, то рекомендую обратить своё внимание на Stylus. Работает на Node, и возможностей поболее, чем у SASS.
А что за ошибку выдаёт? И какую версию SASS используете? Потому что на данный момент в SCSS песочнице у меня работают все ваши варианты. Может обновление SASS поможет?