簡體   English   中英

通過事件處理程序將參數從一個函數發送到另一個函數

[英]sending arguments from one function to another through event handler

我在這里有兩個功能,第一個是由按鈕觸發的,它的意思是觸發第二個功能,該功能將更改伴隨html區域的第一個按鈕的內部html。

我的問題是如何將第一個函數中的參數傳遞給第二個函數中的按鈕和文本字段具有相同的idnumber。

    function doLoad(idnumber, id) {
        var file = _(id).files[0];
        _("Btn1_QP_"+idnumber).style.display = "none";
        _("Display_QP_"+idnumber).innerHTML = "Image uploading......";
        var formdata = new FormData();
        formdata.append("stPic", file);
        var ajax = new XMLHttpRequest();
        ajax.addEventListener("load", completeHandler, false);
        ajax.open("POST", "pho_stem3.php");
        ajax.send(formdata);    
     }

    function completeHandler(event) {
        _("Display_QP").innerHTML = 'wahooo';
    } 
}

在函數doLoad中,idnumber由按鈕提供,並用於通過("Btn1_QP_"+idnumber)標識正確的按鈕

我如何在事件偵聽器的第二個函數completeHandler中實現相同的選擇能力。

我努力了

ajax.addEventListener("load", completeHandler(idnumber), false);
ajax.addEventListener("load", ("completeHandler"+idnumber), false);

兩者都不起作用。 我如何保存和傳遞doLoad中的原始參數...

您可以像這樣通過ajax傳遞相同的ID號:

function doLoad(idnumber, id) {
    var file = _(id).files[0];
    _("Btn1_QP_" + idnumber).style.display = "none";
    _("Display_QP_" + idnumber).innerHTML = "Image uploading......";
    var formdata = new FormData();
    formdata.append("stPic", file);
    var ajax = new XMLHttpRequest();        
    ajax.open("POST", "pho_stem3.php");
    ajax.send(formdata);

    ajax.onreadystatechange = function() {
    if (ajax.readyState == 4) {
         completeHandler(idnumber);
    }
}
}

function completeHandler(idnumber) {
   _("Display_QP_" + idnumber).innerHTM = 'wahooo';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM