Php jCarousel每次单击图像时初始化/刷新/重新加载

Php jCarousel每次单击图像时初始化/刷新/重新加载,php,javascript,jquery,jcarousel,Php,Javascript,Jquery,Jcarousel,我正在与jCarousel进行图片预览(http://sorgalla.com/projects/jcarousel/),但面临一个问题:我不知道如何重新加载/刷新jCarousel动态列表 我有几类图片。当我点击其中一张图片时,我需要创建列表并从该元素开始预览。我有一些代码,但不知道如何使它重新创建所有列表后,点击其他图像预览开始与其他图像。 这是我的代码: $(document).ready(function(){ $("ul#stage li").live('click', functio

我正在与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);
});
});
$(文档).ready(函数(){
$(“ul#stage li”).live('click',function(){
var ul=$(this.parent();
变量索引=+(ul.children().index(this))+1;
var mycarousel_itemList=[];
$('li[data id]')。每个(函数(){
var$this=$(this);
mycarousel_itemList.push({
url:$this.attr(“数据img”),
标题:$this.attr(“数据标题”)
});
});
函数mycarousel_itemLoadCallback(carousel,state){
for(var i=carousel.first;i mycarousel_itemList.length){
打破
}
添加(i,mycarousel_getItemHTML(mycarousel_itemList[i-1]);
}
};
函数mycarousel_getItemHTML(项目){
返回“”;
};
警报(索引);
jQuery(“#mycarousel”).jcarousel({
itemLoadCallback:{onBeforeAnimation:mycarousel_itemLoadCallback},
大小:mycarousel_itemList.length,
卷轴:1,
开始:索引,
总结:'最后',
动画:“快”,
可见:1
});
document.getElementById('popup-content').style.background='url(+$(this.attr(“数据img”)+')无重复中心';
document.getElementById('fades').style.display='block';
document.getElementById(“light”).style.display=“block”;
美元("光"),法德托("慢",1),;
});
});
一切都是这样的:有图像>我用jCarousel点击其中一个>弹出显示和一个可见图像,然后我可以滚动浏览所有其他图像

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

如果有些事情不够清楚,请询问。我会尽量使它更准确。
谢谢你的帮助

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


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

我当时对这类东西还很陌生。这就是我无法解决这个问题的原因,在某些情况下,我使用JavaScript而不是jQuery选择器。非常有趣的是,你接受了我的答案,并在两年多后解释了自己:)我没有很快得到答案,所以我完全忘了,昨天就找到了。:)