Попытка получить jCarousel для получения нового набора записей при нажатии кнопки Далее - PullRequest
2 голосов
/ 30 июня 2009

Последние 2 дня я пытался заставить эту штуку позвонить моему getJSON и получить новый набор записей на основе carousel.last значение при нажатии следующей кнопки. Он загружает 3 картинки при запуске просто отлично но следующая кнопка не активна потому что у меня только 3 загружен и в очереди больше не осталось Я не хочу никаких задерживаясь.

Посмотрите на этот пример, это то, что я пытаюсь сделать, но вместо этого получить новый набор изображений с помощью моего метода getJSON:

http://sorgalla.com/projects/jcarousel/examples/dynamic_flickr_api.html

Так вот мой код, но он не работает, то есть я загружаю 3 изображения и следующая кнопка не активна. Даже когда я загружаю 4 изображения (чтобы получить Следующая кнопка будет кликабельной, потому что я загрузил 4 изображения, и он знает, есть еще один в дополнение к 3), он не идет и получить новый набор из 3 изображений:

<script src="../scripts/jquery-1.3.2.min.js" type="text/javascript"></
script>
<script src="../scripts/jquery.jcarousel.pack.js" type="text/
javascript"></script>
<link rel="stylesheet" type="text/css" href="../css/
jquery.jcarousel.css" />
<link rel="stylesheet" type="text/css" href="../css/skin.css" />

<script type="text/javascript">

jQuery(document).ready(function()
{
    $('#mycarousel').jcarousel({
        itemLoadCallback: mycarousel_itemLoadCallback
    });

});

function decode(s)
{
    return s.replace(/&amp;/g, "&")
            .replace(/&quot;/g, '"')
            .replace(/&#039;/g, "'")
            .replace(/&lt;/g, "<")
            .replace(/&gt;/g, ">");

};

function mycarousel_itemLoadCallback(carousel, state) {

    carousel.lock();

        //for (var i = carousel.first; i <= carousel.last; i++) {
            mycarousel_itemAddCallback(carousel, carousel.first,
carousel.last);
        //}

};

function mycarousel_itemAddCallback(carousel, first, last) {
    // Unlock
    carousel.unlock();

    $.getJSON("http://localhost:59396/xxx/xxxHandler.ashx?
action=carouselproducts&setsize=3" + "&cfirst=" + carousel.first +
"&clast=" + carousel.last,
        function(data) {
            carousel.size(data.length);
            $.each(data, function(i, item) {
                carousel.add(i, decode(item.ImageTag));
                if (i == 3) return false;
            });
        });

};

</script>

</head>
<body>
    <form id="form1" runat="server">
        <div>
            <ul id="mycarousel" class="jcarousel-skin-ie7">
                <!-- this will be dynamically populated -->
            </ul>
        </div>
    </form>
</body>
</html>

Я не знаю, что еще можно попробовать здесь или как заставить это работать как пример. И я не думаю, что мне нужна вся эта логика подкачки, потому что я не использую Flickr, и я хочу просто основать следующий набор для выборки на основе по первому и последнему индексу карусели, вызвав мой getJSON по нажатию кнопки «Далее» или «Предыдущий».

1 Ответ

0 голосов
/ 27 июня 2011

Я взял ваш код и запустил его в FF4 и IE9. Кнопка «Далее» включена, и я даже вижу, как выполняются вызовы ajax, когда я нажимаю на следующий значок Ваш браузер проблем специфичен?

enter image description here

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