2011-03-16 125 views
0

我有一個包含兩個函數的頁面。函數編譯一個數組並在完成時顯示一個按鈕。用戶點擊按鈕,陣列被傳遞到函數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 2011-03-16 19:28:56

1

當創建在功能上的按鈕,你能不能做到以下幾點:

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。

相關問題