#jquery #ajax #jcarousel
#jquery #ajax #jcarousel
Вопрос:
Я использую плагин jCarousel для небольшой страницы галереи с параметром itemloadcallback для динамической загрузки элементов в карусель.
Однако я не уверен, возможно ли это, но есть ли способ, с помощью которого экземпляр карусели на самой странице может быть удален и воссоздан с новым набором элементов? Я планирую использовать фильтр (поле выбора) на странице, при изменении которого я хотел бы сгенерировать новую карусель с отфильтрованным списком. Есть идеи экспертов?
Заранее спасибо.
Za
Ответ №1:
Мне удалось поработать над этим позже в тот же день, но последние несколько дней я был слишком занят, чтобы опубликовать решение, к которому я пришел. Я использовал ту же функцию addItemCallback, которая требуется для динамической загрузки элементов, но для другого события, которое привязано к фильтру события года onChange. Что ж, вот оно, и я надеюсь, что это может помочь нескольким другим попыткам реализовать то же самое:
функция mycarousel_initCallback(карусель) {
jQuery('#filter_year').live('change', function() {
jQuery.get(
'dynamic_ajax_php.php',
{
first: carousel.first,
last: carousel.last 1,
year:"" $(this).val() ""
},
function(xml) {
mycarousel_itemAddCallback(carousel, carousel.first, carousel.last, xml);
},
'xml'
);
});
}
Ответ на вопрос показался бы слишком конкретным (ну, вопрос тоже был слишком конкретным), но я хотел показать, как события из элементов за пределами карусели могут отслеживаться и использоваться для управления каруселью.
Приветствия!
Ответ №2:
Почему бы вам не поместить jCarousel в div с определенным идентификатором (хотя, вероятно, именно так вы это и делаете). Вам нужен ajax только для загрузки нового контента. Если вызов ajax завершится успешно, вы можете добавить (или, скорее, просто использовать функцию html () jquerys) необходимую структуру и вызвать jCarousel к этому div.
Комментарии:
1. Sharoni — вот что я имею в виду — вызвать jCarousel для содержимого в div — Хотя мое содержимое в div будет состоять из базовой структуры, которую вызывает jCarousel, второй вызов jCarousel, предназначенный для реализации над содержимым div, — это то, чего мне пока не удается достичь. Спасибо.
2. что, если вы вернете уже сгенерированную jcarousel с помощью ajax-вызова?
3. Шарони — во-первых, что вы имеете в виду под «уже сгенерированной jcarousel через ajax»? Известно ли вам, что jCarousel — это плагин javascript и, как любая другая функция js, применима только к элементам, генерируемым / выводимым в браузер (т. Е. к элементам на стороне клиента)? Если вы имеете в виду репликацию структуры <ul> — <li>, которую jCarousel создает для существующего списка и возвращает через ajax — ну, это не помогает и никогда не поможет, потому что jcarousel или, фактически, любая другая библиотека jquery должна применяться к элементу, который уже существует в DOM. Спасибо за попытку помочь, но .. хм ..(вздох)