Взгляните на это:
http://jsbin.com/unoce/7/edit
Вы используете старую версию jQuery (1.3.2). Текущее значение - 1.4.2, поэтому я переключил его в jsBin, чтобы использовать размещенную в Google версию jQuery.
Это не было частью проблемы, но я объединил некоторый код. У вас было несколько звонков на $(document).ready()
. Это не плохо, но и не обязательно. Я объединил код в один ready()
вызов.
Вы назначали 2 обработчика кликов. Опять же, это хорошо, но не нужно. Я поместил код от обоих в функцию обратного вызова для свойства initCallback
.
initCallback
вызывается только один раз, в начале. Вот почему класс current
не обновлялся при автоматическом обновлении.
У jCarousel есть много других опций обратного вызова. Один называется itemVisibleInCallback
. На самом деле он принимает объект, который может принимать два обратных вызова:
itemVisibleInCallback: {
// This one is called before new item is displayed
onBeforeAnimation: mycarousel_itemVisibleBefore,
// This one is called after new item is displayed
onAfterAnimation: mycarousel_itemVisibleAfter
}
Именно здесь я позаботился об удалении и добавлении класса current
.
Эти обратные вызовы могут иметь четыре параметра: карусель, элемент, idx, состояние
Мне пришлось использовать параметр idx
, чтобы обратиться к нужному элементу в #features-nav
, потому что параметр item
, казалось, ссылался на прокручиваемый элемент.
В любом случае, надеюсь, это поможет.