Вы, например, имеете смысл, за исключением того, что вы выходите за пределы плагина, jCarousel не знает, чтобы обновить себя. Из документов, похоже, будет работать метод remove(), о котором вы говорили. Тем не менее, это мои испытания, я никогда не мог заставить объект jCarousel на самом деле «делать правильные вещи» и обновлять его кнопки, прокручивать и т. Д.
Из-за этого я написал дополнительный метод для класса jCarousel, который делает именно это. Вы вызываете removeAndAnimate (1), чтобы удалить первый элемент в карусели и перестроить все, чтобы кнопки next/prev были включены/отключены, работает.
Также стоит отметить, что функция remove() jCarousel предотвращает удаление объекта, который в настоящее время отображается, что именно мы хотели сделать (разрешить пользователю удалять изображение из карусели, нажав на него , например).
Реализация для removeAndAnimate (I):
removeAndAnimate: function(i) {
var e = this.get(i);
var d = this.dimension(e);
if (i < this.first) this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + d + 'px');
e.remove();
this.options.size--;
var di = this.options.visible != null ? Math.ceil(this.clipping()/this.options.visible) : null;
var li = this.list.children('li');
var self = this;
if (li.size() > 0) {
var wh = 0, i = this.options.offset;
li.each(function() {
self.format(this, i++);
wh += self.dimension(this, di);
});
this.list.css(this.wh, wh + 'px');
}
this.scroll(0,true);
this.buttons();
}
Я рекомендую это размещение непосредственно после осуществления удалить(). Чтобы получить доступ к экземпляру jCarousel себя с JQuery, вне функций обратного вызова:
var carousel = $("#mycarousel").data("jcarousel");
carousel.removeAndAnimate(1);
Это должно работать!
Полезно знать. В конце я выбрал другой плагин. –