devolución de llamada después de la función jQuery.trigger ()

Tengo un pequeño problema aquí. Tengo que desencadenar un evento que contiene $ .post () para cargar un formulario y asignarlo a un DOM. Una vez hecho esto, he editado los campos del formulario.

Lo intenté:

$.when(function(){
    $('#type_rank_field').trigger('change'); //calls the $.post() to load the form
})
 .done(function(){
    $('#quest_'+questions[i].split('|')[1]).children('option[value="'+questions[i].split('|')[0]+'"]').attr('selected',true);
});

Desafortunadamente esto no funciona y si lo dejo así:

$('#type_rank_field').trigger('change');
$('#quest_'+questions[i].split('|')[1]).children('option[value="'+questions[i].split('|')[0]+'"]').attr('selected',true);

El cambio incluso se ve así:

        $('#type_rank_field').live('change',function(){
        var id = $(this).children('option:selected').attr('id');
        var id_edited = get_id_from_id(id);
        $.post('ajax/load_questions_of_rank.ajax.php',{id: id_edited},function(data){
            //alert(data);
            $('#rank_fields').html(data);
        });
    });

Luego, la edición del formulario se ejecuta antes de que el formulario se cargue correctamente y se adjunte a DOM. Esta podría ser una pregunta estúpida para los chicos de JavaScript, pero yo soy principalmente un chico de PHP, así que no seas cruel :-)

Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta