извращение, конечно, но:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>WTF</title>
<style>
body{text-align:center;font-family:Verdana,Helvetica;font-size:12px;color:#000;background-color:#fff;margin-top:250px;}
input{margin-left:50px;margin-right:50px;cursor:pointer;letter-spacing:1px;font-weight:bold;border:none;background-color:transparent;}
#elem{margin-bottom:50px;}
</style>
<script>
function _(id){return document.getElementById(id);}
function doSmth(arg1,arg2,callback){
// тут какие то действия
if(callback){
_('test').innerHTML='doSmth.timer = '+(doSmth.timer || 'is not defined yet');
doSmth.stoptimer();
doSmth.timer=setTimeout(callback,7000);
}
}
Function.prototype.stoptimer = function(){
try{clearTimeout(this.timer);}
catch(e){}
}
onload=function(){
var e1=_('el1'),e2=_('el2'),e3=_('elem');
e1.onclick=function(){
doSmth('','',function(){e3.style.visibility="hidden";});
};
e2.onclick=function(){
doSmth('','',function(){e3.style.visibility="hidden";});
};
}
</script>
</head>
<body>
<div id="elem">Исчезающий элемент<br /><br /><div id="test"></div></div>
<input type="button" id="el1" value="Element 1" />
<input type="button" id="el2" value="Element 2" />
</body>
</html>