potresti fare cosi:
codice:
hover = false;
focus = false;
$("#idbutton").click(function(){
$("#prova").css("background-color","red");
$("#prova").focus(function() {
if(!hover) $(this).css("background-color","yellow");
focus = true;
});
$("#prova").focusout(function() {
if(!hover) $(this).css("background-color","red");
focus = false;
});
$("#prova").hover(function() {
$(this).css("background-color","blue");
hover=true;
});
$("#prova").mouseout(function() {
if(!focus) $(this).css("background-color","red");
else $(this).css("background-color","yellow");
hover=false;
});
});
fai attenzione che modificando l'ordine delle istruzioni css cambia anche il comportamento della textbox, l'ultima istruzione ha sempre la precedenza, infatti come tu hai detto "se dò il focus e lascio il mouse all'interno lo sfondo è sempre blue" se inverti le ultime due righe del css invece vedrai che "se dò il focus e lascio il mouse all'interno lo sfondo è giallo (invece che blu)".