Плагин JCarousel JQuery, нужна помощь - PullRequest
1 голос
/ 12 января 2010

Следующая кнопка активна, хотя в карусели нет элементов, и кажется, что JCarousel считает, что у нее бесконечные элементы, потому что когда я нажимаю на следующую, она фактически прокручивается.

Я хочу отключить «следующий», когда в карусели нет предметов.

Карусель отлично работает, когда в карусели есть предметы! У меня нет абсолютно никакого опыта работы с JQuery, только немного JavaScript.

Вот что у меня есть:

jQuery(document).ready(function() {
    jQuery('#mycarousel').jcarousel({
        scroll:4

    });
});

Я думаю, что мне следует каким-то образом использовать initCallback, но, как я уже сказал, у меня вообще нет опыта работы с JQuery. КСТАТИ вот все параметры JCarousel и я думаю, как их установить.

Надеюсь, кто-нибудь мне поможет.

Спасибо

Ответы [ 2 ]

2 голосов
/ 12 января 2010

Я верю, что вы правы в этом initCallback - это то, что вы хотите Вы хотели бы провести какой-то тест, чтобы увидеть, есть ли в списке какие-либо элементы, например:

initCallback: function(carousel, state){
    if($(carousel).find('li').length == 0){
       $('#next').attr('disabled', true);
    }else{
       $('#next').attr('disabled', false);
    }
}

Вы также можете проверить функции карусели buttonNextCallback и buttonPrevCallback, которые снова позволят вам включить или отключить следующую и предыдущую "кнопки", если текущим li является :last или :first соответственно.

0 голосов
/ 12 января 2010

Я не спрашивал об этом в вашем другом вопросе, но я сделаю это сейчас - если нет рекламы, которая подразумевала бы, что у вас есть полностью пустой ul для начала, так почему даже есть ul и почему когда-либо вызывается jcarousel на это?

Я подумал, что вы делаете это для согласованности макета, и если это так, тогда все в порядке, но разве у вас не должно быть контента по умолчанию для вашего рекламного блока? в противном случае вы получите элементы управления и пустой div, который я не могу изображение будет выглядеть "хорошо".

Я могу помочь вам в любом случае, но я бы хотел дать хорошее решение, которое может или не может быть решением, которое вы на самом деле запрашиваете; -)

Например, чтобы полностью пропустить вызов jcarousel, если нет объявлений, вы можете сделать что-то вроде:

$(document).ready(function(){
  var carouselList = $('#my-ad-carousel li');
  if(carouselList.length > 0) {
    carouselList.jcarousel({scroll: 4});
  }
});

or replace it with a single default ad:

$(document).ready(function(){
  var carouselList = $('#my-ad-carousel li');
  if(carouselList.length > 0) {
    carouselList.jcarousel({scroll: 4});
  }
  else{
    carouselList.replaceWith('<img src="/path/to/some/image" />");
  }

});

Все зависит на самом деле, но я не уверен, что просто показ полностью отключенного arousel - хороший путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...