2012-10-02 42 views
0

因为小时我试图建立自己的幻灯片播放与一些JavaScript。深度复制与jquery不工作

我有一个对象$ 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);   

    }) 

回答

2

nextpic是一个(jQuery的包裹)DOM节点的引用。当您追加它时,您将不得不.clone() DOM节点。

+0

非常感谢......但为什么这很难......因为DOM元素的混合我不能复制? – Jurudocs