Показать сообщение отдельно
  #1 (permalink)  
Старый 25.11.2011, 10:06
Новичок на форуме
Отправить личное сообщение для Almiur Посмотреть профиль Найти все сообщения от Almiur
 
Регистрация: 25.11.2011
Сообщений: 4

Не всегда срабатывает onclick
Всем доброго времени суток! Никогда не задавал вопросов на форумах (зачем зря напрягать людей), всегда гуглил и думал сам, но сейчас не смог ничего нагуглить по своей проблеме. У меня почему-то (во всех браузерах) не всегда срабатывает событие onclick при работающем таймере (есть функция, которая вызывает себя же через setTimeout). Вот фрагмент кода:

function ImgRotate(Img, ImgHeight)
{
 ImgElem = document.getElementById(Img);
 ImgStartHeight = ImgElem.height;
 if ((ImgStartHeight == ImgHeight) && (! ImgElem.f)) ImgRotateTimer(Img, ImgStartHeight, -2);
}

function ImgRotateTimer(Img, ImgStartHeight, Delta)
{
 ImgElem = document.getElementById(Img);
 ImgElemStyle = ImgElem.style;
 ImgElemHeight = ImgElem.height;
 if (ImgElemHeight + Delta < 0) NextVal = 0;
 else if (ImgElemHeight + Delta > ImgStartHeight) NextVal = ImgStartHeight;
 else NextVal = ImgElemHeight + Delta;
 ImgElem.height = NextVal;
 ImgElemStyle.marginTop = Math.round((ImgStartHeight - NextVal) / 2) + 'px';
 if (NextVal == 0) Delta = -Delta;
 if (NextVal != ImgStartHeight)
  setTimeout('ImgRotateTimer("' + Img + '", ' + ImgStartHeight + ', ' + Delta + ')', 15 / SpeedCoef);
}

function ImgOut(Img)
{
 ImgElem = document.getElementById(Img);
 ImgElem.f = '1';
 setTimeout('document.getElementById("' + Img + '").f = ""', 100);
}


<a style = "display: block; width: 100px; height: 24px" href = "poetry.php" onmouseover = "ImgRotate('img_catalog', 24)" onmouseout = "ImgOut('img_catalog')">
 <img src = "catalog.png" border = 0 width = 100 align = "top" id = "img_catalog">
</a>


Заранее большое спасибо.
Ответить с цитированием