2012-10-02 41 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