Las funciones setInterval y setTimeout son funciones de javascript puro, busca en google unos tutoriales de como usarlos. Creo yo que algo así es lo que quieres hacer:
Código Javascript :
// suponiendo que usas jQuery 1.7+
$(document).on("ready", function(){
var outid1 = setTimeout(function(){
$("#id1").fadeOut("slow");
}, 5000);
var outid2 = setTimeout(function(){
$("#id2").fadeOut("slow");
}, 5000);
$("#id1, #id2").on("mouseover", function(){
clearTimeout(eval("out"+$(this).attr('id')+";"));
});
});
El problema que con ese código que te he pasado si pasas el mouse por uno y luego por el otro ninguno desaparecerá pero puedes hacer que cuando pase el mouse por uno el otro desaparezca:
Código Javascript :
$(document).on("ready", function(){
var outid1 = setTimeout(function(){
$(".desaparecer #id1").fadeOut("slow");
}, 5000);
var outid2 = setTimeout(function(){
$(".desaparecer #id2").fadeOut("slow");
}, 5000);
$(" .desaparecer #id1, .desaparecer #id2").on("mouseover", function(){
$(".desaparecer").find("div").off("mouseover");
$(".desaparecer").find("div:not([id="+$(this).attr('id')+"])").fadeOut("slow");
clearTimeout(eval("out"+$(this).attr('id')+";"));
});
});
Este es el más eficiente para mi, lo único que cambia es que las divs (o el tag que uses) con las ids tendrás que meterlas dentro de otra div cuya class sea ".desaparecer"