【问题标题】:Deep Copy with jquery not working使用 jquery 进行深度复制不起作用
【发布时间】:2012-10-02 10:13:37
【问题描述】:

从几个小时以来,我尝试构建自己的幻灯片来玩一些 javascript。

我有一个对象 $pic,其中包含我网站的所有图像。到目前为止没问题。我的图片在我的网站上显示为拇指。

现在,当我单击 .rightslide 按钮时,由于 slidenavi() 函数,脚本会获取当前图像的下一张和上一张图像。这也有效。但它不会深度复制 slidenavi() 函数返回的对象,因此应该复制的图像被带走......所以根本没有复制!

我能做什么?

    function slidenavi(image_src){
        $nextpic_index="";
        $prevpic_index="";
        $nextpic="";
        $prevpic="";

        $pics.each(function (index) {
            if (this.src== image_src){
                $nextpic_index=index+1;
                $prevpic_index=index-1;
            } 
        })
        nextpic=$pics.eq($nextpic_index);
        prevpic=$pics.eq($prevpic_index);
        img = {
            prev:prevpic,
            next:nextpic
        };

        return img
    }

    $('.rightslide').click(function(){
        var slidenaviobject=slidenavi($(this).parent().siblings('img').attr('src'));
        var copyimage = jQuery.extend(true, {}, slidenaviobject);
        console.log(copyimage.next);
        $('.slideshow-wrapper').append(copyimage.next);        

    }) 

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    nextpic 是对(jQuery 包装的)DOM 节点的引用。追加时必须.clone() DOM 节点。

    【讨论】:

    • 非常感谢……但为什么这么难……因为我无法复制 DOM 元素的混合?
    猜你喜欢
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 2017-07-19
    • 2018-05-30
    相关资源
    最近更新 更多