Методом проб и ошибок я правил скрипт, теперь всё работает.
Единственное, что не могу исправить, это последний кусочек кода, который присваивает класс current не ссылке, а тегу li в который она вложена. Помогите разобраться с этим.
//изменение стиля элементов меню при скролле
cur = cur[cur.length-1];
var id = cur && cur.length ? cur[0].id : "";
if(/\d/g.exec(id)) id = id.split('-',1)[0];
if(lastId !== id) {
lastId = id;
menuItems.parent()
.removeClass("current")
.end()
.filter("[href=#"+id+"]")
.parent()
.addClass("current");
}
И ещё небольшой момент: я сделал плавную прокрутку страницы от пункта к пункту и при прокрутке через несколько пунктов меню (по кликам в меню), стиль current поочерёдно присваивается всем li до последнего. Как сделать так, чтобы этого не происходило, а класс current сразу присваивался сразу конечной ссылке?