2012-02-14 15 views
1

次のjQueryコードは、ページの読み込み時に開始されます。スライドショーを開始します。初期化されたオブジェクトを置き換えるにはどうすればよいですか?

$(document).ready(function() { 

    $.dothis({ 
     option:1, 
     option:2, 
     slides:[ 
      {image:'img1.jpg'}, 
      {image:'img2.jpg'} 
     ] 
    }); 

}); 

ここで、ユーザーがページの本文をクリックしたときに画像を追加/削除します。スライド[:]オブジェクトに項目を追加/削除するにはどうすればよいですか?または、このオブジェクトをすべて一緒に置き換えるにはどうすればよいですか?あなたが別のオブジェクトをコピーするためにjQueryの$.extend APIを使用することができます

答えて

3
var slideoptions = { 
    option:1, 
    option:2, 
    slides:[ 
     {image:'img1.jpg'}, 
     {image:'img2.jpg'} 
    ] 
}; 

$(document).ready(function() { 

    $.dothis(slideoptions); 

}); 

// push new image into slides array 
slideoptions.slides.push({ 'image' : 'someimg.jpg' }); 
+0

は、あなたはまた、オブジェクト全体を交換する方法を教えてもらえますか?私は成功しなかった:slideoptions.slides = [{'イメージ': 'img3.jpg'}]; – bart

0

var slideoptions = { 
    option:1, 
    option:2, 
    slides:[ 
     {image:'img1.jpg'}, 
     {image:'img2.jpg'} 
    ] 
}; 

var modifiedSlideObj = { 
    option: 4, 
    slides: [ 
     {image:'img3.jpg'}, 
     {image:'img4.jpg'} 
    ] 
}; 

$.extend(slideoptions, modifiedSlideObj); 

alert(slideoptions.slides[0].image); 
+0

dothis()は、そのパラメータにslideoptionsを使用しています。この上に別のオブジェクトをコピーしても影響はありません。つまり、dothis()は新しいパラメータを使用しません。 – bart

関連する問題