我如何在2个函数中使用相同的私有变量

时间:2018-05-21 06:00:43

标签: javascript jquery ajax

所以我有2个功能。问题出在fontStyle变量中。我知道我可以在第二个函数中声明它,但是他不会从第一个函数中取出数据。所以问题是styep_id

P.S 它不应该是公共变量,因为它不起作用。它不会保存数据。

how i can use the same variable without lost data on him

    function delete_estimate_position_type() {
        var estpt_tr_jqobj, estpt_action_links_td_jqobj, styep_id, authenticity_token, request_url, stya_id;

        styep_id = $(this).attr("styep_id");

        // Ja ir tikko kā pievienots, tad tikai izmetīsim ārā no DOM
        if (!styep_id == "") {
            estpt_action_links_td_jqobj = $(this).parent();
            estpt_tr_jqobj = estpt_action_links_td_jqobj.parent();
            stya_id = $("td.service-type-est-position-estimate-position-type-name>input.stya-id-for-styep", estpt_tr_jqobj).val();
            estpt_tr_jqobj.remove();
            show_stya_delete_link_if_possible(stya_id);
            remove_estpgt_if_has_no_estpt($(this).attr("estpgt_id"));
        }
}

2 个答案:

答案 0 :(得分:1)

在第一个函数中调用第二个函数并将变量作为参数传递:

function delete_estimate_position_type() { 
   save_configuration(styep_id)
}

function save_configuration(id){
   request_url = "/service_type_est_positions/" + id + "/destroy_from_service_type_config";
}

答案 1 :(得分:1)

你可以这样使用

 function delete_estimate_position_type() {
        var estpt_tr_jqobj, estpt_action_links_td_jqobj, styep_id, authenticity_token, request_url, stya_id;

        styep_id = $(this).attr("styep_id");

       // your other code goes here.....
       // Your variable pass as argument
            remove_estpgt_if_has_no_estpt($(this).attr("estpgt_id"),styep_id.val() );
        }
}

//从论证中获取。

function remove_estpgt_if_has_no_estpt(estpgt_id,styep_id ) {
    // Paskatīsimies vai eksistē kāda tāmes pozīcija
    if ($("#estpt_for_" + estpgt_id + ">tr:first").size() == 0) {
        $("#estpgt_" + estpgt_id).remove();
        $("#estpt_tr_for_" + estpgt_id).remove();
    }
}

另一个选项是在隐藏字段中设置它。

// html

<input type = "hidden" id="styep_id_newval" value="">

// html的结尾

function delete_estimate_position_type() {
        var estpt_tr_jqobj, estpt_action_links_td_jqobj, styep_id, authenticity_token, request_url, stya_id;

        styep_id = $(this).attr("styep_id");

       // your other code goes here.....
       $("#styep_id_newval").(styep_id.val());

       // Your variable pass as argument
            remove_estpgt_if_has_no_estpt($(this).attr("estpgt_id"),styep_id.val() );
        }
}

现在,您可以随时随地轻松访问代码。

$("styep_id_newval").val();