функция jquery - переназначить глобальную переменную javascript - PullRequest
0 голосов
/ 19 сентября 2011

Я использую скрипт загрузки, который запускает функцию после загрузки файла.Мне нужна эта функция, чтобы переназначить значение переменной javascript.Мне нужно переназначить "trackid" на значение, которое находится внутри моей функции onComplete.Кто-нибудь может мне помочь?

Редактировать: Немного больше объяснений ... У меня есть 2 экземпляра этого сценария загрузки на моей странице.Мне нужно взять ответ от первого загрузчика и назначить его в качестве параметра URL для второго загрузчика.Это как-то связано с document.ready?Я обновлю свой код.

1-й сценарий:

<script type="text/javascript">
trackid = 9999999;
</script>
<script type="text/javascript">
        jQuery(document).ready(function() { 

    $('#mainftp').uploadify({
    'uploader'  : 'js/uploadifyposted/uploadify.swf',
    'script'    : 'js/uploadifyposted/uploadify.php?<?php echo urlencode("privateFolderWav=" . $privateFolderWav . "&userid=" . $userid. "&songid=" . $songid);?>',
    'multi'         : true,
    'auto'          : true,
    'height'        :   '32', //height of your browse button file
    'width'         :   '250', //width of your browse button file
    'sizeLimit' :   '51200000',  //remove this to set no limit on upload size
    'simUploadLimit' : '3', //remove this to set no limit on simultaneous uploads
    'buttonImg' : 'img/browse.png',
    'cancelImg' : 'img/cancel.png',
        'folder'    : '<?php echo $privateFolderWav;?>', //folder to save uploads to
        onProgress: function() {
          $('#loader').show();
        },
        onComplete: function(event, queueID, fileObj, response, data, trackid) {
          $('#loader').hide();
          $('#allfiles').load(location.href+" #allfiles>*","");
          $('#filesUploaded').attr('value', ''+response+'');
          trackid = response;
          alert(trackid);

          //location.reload(); //uncomment this line if youw ant to refresh the whole page instead of just the #allfiles div
        }   
    });

    $('ul li:odd').addClass('odd');

}); 

</script>

2-й сценарий:

<script type="text/javascript">


        jQuery(document).ready(function() { 

    $('#mainftp2').uploadify({
    'uploader'  : 'js/uploadifymultiple/uploadify.swf',
    'script'    : 'js/uploadifymultiple/uploadify.php?<?php echo urlencode("songid=" . $songid . "&userid=" . $userid . "&trackid=");?>'+trackid,
    'multi'         : true,
    'auto'          : true,
    'height'        :   '32', //height of your browse button file
    'width'         :   '250', //width of your browse button file
    'sizeLimit' :   '51200000',  //remove this to set no limit on upload size
    'simUploadLimit' : '3', //remove this to set no limit on simultaneous uploads
    'buttonImg' : 'img/browse.png',
    'cancelImg' : 'img/cancel.png',
        'folder'    : '<?php echo $multiFolder?>', //folder to save uploads to
        onProgress: function() {
          $('#loader2').show();
        },
        onComplete: function(event, queueID, fileObj, response, data) {
          $('#loader2').hide();
          $('#allfiles2').load(location.href+" #allfiles2>*","");
          $('#filesUploaded2').attr('value', ''+response+'');

          //location.reload(); //uncomment this line if youw ant to refresh the whole page instead of just the #allfiles div
        }   
    });

    $('ul li:odd').addClass('odd');

}); 

</script>

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

Я не вижу триггера в этом коде.Похоже, что оба скрипта запускаются сразу после загрузки страницы, если так, второй скрипт не ожидает переназначения переменной.Эта вторая функция должна вызываться в onComplete первого

0 голосов
/ 19 сентября 2011

Попробуйте установить:

trackid = 9999999;

вместо

var trackid = 9999999;

var foo = 'baa';<- закрытая переменная foo = 'baa' <- глобальная переменная </p>

Например:

`function print2 () {var foo = 'baa';}

print2 ();предупреждение (Foo);`

not print 'foo' не определено.`function print2 () {foo = 'baa';}

print2 ();предупреждение (Foo);`print 'baa'

...