Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Одна функция;Много объектов. (https://javascript.ru/forum/misc/5387-odna-funkciya%3Bmnogo-obektov.html)

pr0gl 11.10.2009 14:25

Одна функция;Много объектов.
 
Здравствуйте ув.Форумчане. Собственно вопрос:
Для создания плавно мигающей кнопки мною был написан следующий код:
<html>

<head>

<script type="text/javascript" language="JavaScript">

var another = 0;
var opacifyexecuted=false;
var resizeexecuted=false;
function opacify(id4op){
	if(opacifyexecuted==true){clearInterval(tout)}else{opacifyexecuted=true;};
	obj4op = document.getElementById(id4op);
	i4op = obj4op.style.opacity*100;
	tout = window.setInterval(fade,10);
	function fade(){
	i4op--;
	obj4op.style.opacity = i4op/100;
	if(obj4op.style.opacity<=0){clearInterval(tout)}}
}

function deopacify(id4op){
	if(opacifyexecuted==true){clearInterval(tout)}else{opacifyexecuted=true;};
	obj4op = document.getElementById(id4op);
	i4op = obj4op.style.opacity*100;
	tout = window.setInterval(fade,10);
	function fade(){
	i4op+=5;
	obj4op.style.opacity=i4op/100;
	if(obj4op.style.opacity>=1){clearInterval(tout)}}
}
</script>
</head>
<body>
<div id="menubuttondiv" style="background-image:url('img/buttonleftbg.png');border:none;padding:0px;margin:0px;width:283px;">

<img src="img/buttonleftnormal.png" id="menubutton" style="opacity:0;" onmouseout="opacify(this.id);" onmouseover="deopacify(this.id);" >

</div>
</body>

</html>


Что произойдет, если функцию использовать более чем для одной кнопки вы, думаю, догадываетесь: ее выполнение прекратиться как только сработает событие с таким же вызовом в другом месте.
Нужно переписать код так, чтобы можно было безболезненно использовать функцию на многих объектах. Один "знающий форумчанин" сказал что "нужна пирипесать без изпользования глабальных обьектов". Собственно, если действительно нужно, то как это сделать? Мои потуги по этому поводу слишком жалки - не выкладываю. Гугль не дал, нужного количества примеров не нашел.


Часовой пояс GMT +3, время: 08:55.