Ok sto praticamente impazzendo a capire dove sta il problema...
a questo punto vi spiego bene tutto il codice perchè devo farvi anche capire, perchè deve esserci qualche cosa di sbagliato

il mio codice è questo
codice:
num = 1;
function add_autor () {
    var code =  "<div id='autor_list"+(num+1)+"' class='autor_list'>"+
            "<div class='formuser' id='formuserstoria"+(num+1)+"' style='float:left;'><b>Storia"+(num+1)+":</b>              <select name='addstoria"+(num+1)+"'>"+
            "<option value='0' selected='selected'>Vuoto</option>"+
            "</select></div>"+
                    "<div class='formuser' id='formuserdisegno"+(num+1)+"' style='float:left;'><b>Disegni"+(num+1)+":</b>              <select name='adddisegni"+(num+1)+"'>"+
            "<option value='0' selected='selected'>Vuoto</option>"+
                    "</select></div>"+
            "<a href='#' class='drop_autor_list'>X</a>"+
            "</div>";
    $("#autor_list"+num).after(code);
    num++; //aumento num per differenziare il testo
    $("body").on("click",".drop_autor_list",function(){
    $(this).parent().remove();
    });
    $("#autor_list"+num).mouseover(function(){
    $("> .drop_autor_list",this).show(250);
    });
    $("#autor_list"+num).mouseleave(function(){
    $("> .drop_autor_list",this).hide(250);
    });    
}
Ora la cosa che non capisco è questa. l'errore deve essere in questa parte di codice
codice:
$("body").on("click",".drop_autor_list",function(){
    $(this).parent().remove();
});
Perchè se c'è mi blocca il caricamento del blocco sotto quindi show e hide non funzionano, se non c'è invece vanno benissimo. Oltretutto per fare una prova