2011-03-16 2 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

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.

Смежные вопросы