将“事件”与另一个参数一起使用

时间:2020-09-21 20:07:37

标签: javascript ajax event-handling

我需要将 uploadFile 函数收到的ID传递给 progressHandler 函数,并且仍然需要“ 事件”才能正常工作,但我无法做到这一点,有人可以帮我吗?

img[id^='__lpform_cc-number_icon'] {
    display: none !important;
}

input {
background-image: none !important;
}

1 个答案:

答案 0 :(得分:1)

您可以使用匿名回调来实现:

function uploadFile(arquivo, id) {

    alert(id)
    //FLUIGC.loading('#painel_inclusao_planilha').show();

    var file = _(id).files[0];
    // alert(file.name+" | "+file.size+" | "+file.type);
    var formdata = new FormData();
    formdata.append(id, file);
    var ajax = new XMLHttpRequest();
    ajax.upload.addEventListener("progress", function(event) {progressHandler(event, id)}, false);
    //ajax.addEventListener("load", completeHandler, false);
    ajax.addEventListener("error", errorHandler, false);
    ajax.addEventListener("abort", abortHandler, false);
    ajax.open("POST", ""); // http://www.developphp.com/video/JavaScript/File-Upload-Progress-Bar-Meter-Tutorial-Ajax-PHP
    //use file_upload_parser.php from above url
    ajax.send(formdata); }

function progressHandler(event, id) {
    //_("loaded_n_total").innerHTML = "Uploaded " + event.loaded + " bytes of " + event.total;    
    var percent = (event.loaded / event.total) * 100;
    console.log('percent ---> ' + percent)
    if (percent === 100) {
        console.log('Upload concluído')
        ativarBotaoUpload()
        FLUIGC.loading('#painel_inclusao_planilha').hide();
    }
    //_("progressBar").value = Math.round(percent);
    //_("status").innerHTML = Math.round(percent) + "% concluído... por favor, aguarde"; }