2011-03-16 23 views
0

2つの関数を持つページがあります。機能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

あなたはvalue属性に保存し、配列をJSONにシリアライズすることができますボタンをクリックすると、関数Bで非表示のフィールド値を読み取り、JSONを逆シリアル化します。

関連する問題