我的document.ready
中有以下代码 technicianDropdownFromCBU(cbu_id);
assetsDropdownFromCBU(cbu_id);
if(#{@appointment.technician_id.present?}){
$('#appointment_technician_id').val('{@appointment.technician_id}');
}
我只希望在前两个函数执行完毕后运行if语句。我无法修改这些函数并在该代码中包含if语句,因为该函数被多次调用。
答案 0 :(得分:2)
一个简单的解决方案是,创建一个回调函数并将if条件放在该函数中。在你的uper函数体内调用你的回调函数,如下所示:
function technicianDropdownFromCBU(cbu_id){
//do you work here
assetsDropdownFromCBU(cbu_id);
}
function assetsDropdownFromCBU(cbu_id){
//do you work here
callback();
}
function callback(){
if(#{@appointment.technician_id.present?}){
$('#appointment_technician_id').val('{@appointment.technician_id}');
}
}
technicianDropdownFromCBU(cbu_id);
注意:它将按顺序执行您的功能。所以你的if条件最终会运行。
答案 1 :(得分:1)
如果您使用的是 jQuery ,则可以使用:
function someFunctions(cbu_id) {
technicianDropdownFromCBU(cbu_id);
assetsDropdownFromCBU(cbu_id);
}
$.when($.ajax(someFunctions(cbu_id))).then(function () {
if(#{@appointment.technician_id.present?}){
$('#appointment_technician_id').val('{@appointment.technician_id}');
}
});