j轮播每次点击图像时初始化/刷新/重新加载


jCarousel initializing/refreshing/reloading each time clicked on image

我正在使用jCarousel(http://sorgalla.com/projects/jcarousel/)进行图片预览,但面临一个问题:我不知道如何重新加载/刷新jCarousel动态列表。

我有几类图像。当我单击其中一张图片时,我需要创建列表并从该元素开始预览。我有一些代码,但不知道如何在单击预览从其他图像开始的其他图像后重新创建所有列表。这是我的代码:

$(document).ready(function(){
$("ul#stage li").live('click', function() {
    var ul = $(this).parent();
    var index = +(ul.children().index(this))+1;
    var mycarousel_itemList = [ ];
    $('li[data-id]').each(function () {
        var $this = $(this);
            mycarousel_itemList.push({
                url : $this.attr("data-img"),
                title : $this.attr("data-title")
            });
    });
    function mycarousel_itemLoadCallback(carousel, state) {
        for (var i = carousel.first; i <= carousel.last; i++) {
            if (carousel.has(i)) {
                continue;
            }
            if (i > mycarousel_itemList.length) {
                break;
            }
            carousel.add(i, mycarousel_getItemHTML(mycarousel_itemList[i-1]));
        }
    };
    function mycarousel_getItemHTML(item) {
        return '<img src="' + item.url + '" width="800" height="600" alt="' + item.url + '" />';
    };
        alert(index);
    jQuery('#mycarousel').jcarousel({
        itemLoadCallback: {onBeforeAnimation: mycarousel_itemLoadCallback},
        size: mycarousel_itemList.length,
        scroll: 1,
        start: index,
        wrap: 'last',
        animation: 'fast',
        visible: 1
    });
    document.getElementById('popup-content').style.background='url('+$(this).attr("data-img")+') no-repeat center';
    document.getElementById('fades').style.display='block';
    document.getElementById("light").style.display = "block";
    $("#light").fadeTo("slow", 1);
});
});

一切都是这样:有图像>我点击其中一个带有 jCarousel 和一张可见图像的>弹出节目,然后我可以滚动浏览所有其他图像。

它工作得很好,但只是第一次。当我单击其他图像(关闭弹出窗口后)时,视图从最后打开的图像开始。

如果有些事情不够清楚 - 请问。我会尽量让它更精确。感谢您的帮助!

您可以重新创建 jCarousel,首先使用 $('#mycarousel').remove(); 然后再次初始化 jCarousel。我真的不明白你想做什么,但这在大多数情况下会有所帮助,当然 jCarousel 应该有 Destroy 方法,但它没有。

为什么在某些情况下不使用jquery选择器?