2012-02-14 2 views
1

다음과 같은 jQuery 코드가 페이지로드시 시작됩니다. 슬라이드 쇼를 시작합니다.초기화 된 개체는 어떻게 바꿉니 까?

$(document).ready(function() { 

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

}); 

이제 사용자가 페이지 본문을 클릭하면 이미지를 추가/제거하고 싶습니다. 슬라이드 [:] 객체에 항목을 추가/제거하려면 어떻게합니까? 또는이 객체를 모두 함께 바꾸려면 어떻게해야합니까?

답변

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

당신이 방법도 전체 개체를 교체하는 말해 수를 복사 jQuery를 $.extend API를 사용할 수 있습니까? 나는 성공하지 않으려 고 노력했다 : slideoptions.slides = [{ 'image': '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

관련 문제