2011-03-16 3 views
0

두 함수가있는 페이지가 있습니다. 함수 A는 배열을 컴파일하고 완료되면 버튼을 표시합니다. 사용자가 버튼을 클릭하면 배열이 함수 B에 전달됩니다. 함수 A는jQuery에서 한 함수에서 다른 함수로 배열 전달

function createUploader(){ 
     var fileArray = new Array(); 
     var i = 0; 
     var running = 0; 
     var jList = $("#list"); 
      var uploader = new qq.FileUploader({ 
       element: document.getElementById('uploadDiv'), 
       listElement: document.getElementById('separate-list'), 
       action: './includes/ajaxUpload/upload.php', 
     sizeLimit: 10485760, 
     onSubmit: function(id, fileName){ 
      running++; 
     }, 
     onComplete: function(id, fileName, responseJSON){ 
      fileArray[i] = fileName; 
      i++; 
      running--; 
      if(running==0){ 
      $('#combineBtn').css("display",""); 
      $.fancybox.resize(); 
      $('#fancybox-content').width(290); 
      $('#fancybox-wrap').width(310); 
      $.fancybox.center 
      $('.qq-upload-button').width(290); 
      } 
     } 
      }); 
     } 

이 가능합니까? 이것을 달성하는 가장 좋은 방법은 무엇입니까?

답변

2

함수 밖에서 배열을 선언하면 그 둘 모두에서 액세스 할 수 있습니다.

var myarray = []; 
function foo(val) { 
    myarray.push(val); 
} 

function bar() { 
    alert (myarray); 
} 

추가 읽기 : http://www.digital-web.com/articles/scope_in_javascript/

+0

감사합니다. var가 전역인데도 함수 내에서 변경된 내용이 전역인지 확실하지 않았습니다. – jreed121

1

기능 A에서 버튼을 생성, 당신이 할 수없는 다음

function function_a() 
{ 
    var theArray = [1, 2, 3, 4]; 
    var theButton = $('<button>Click Me</button>'); 
    theButton.click(function() { function_b(theArray) }); 
} 

function function_b(myArray) 
{ 
    // Run function code here... 
} 
0

당신은, JSON으로 배열을 직렬화 값 속성에 저장할 수 있습니다 숨겨진 필드에서 버튼을 클릭하면 함수 B에서 숨겨진 필드 값을 읽고 JSON을 비 직렬화합니다.

관련 문제