Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не всегда срабатывает onclick (https://javascript.ru/forum/events/23483-ne-vsegda-srabatyvaet-onclick.html)

Almiur 25.11.2011 10:06

Не всегда срабатывает 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>


Заранее большое спасибо.

Almiur 25.11.2011 10:16

Я немного перепутал. В данном примере не срабатывает щелчок по ссылке (иногда), но если вместо <a> стоит <div> c событием onclick, то оно тоже иногда не срабатывает. Немного поясню, что делает этот скрипт. Он имитирует один оборот картинки-кнопки вокруг своей горизонтальной оси при наведении мыши. И вот пока она делает этот оборот, то бывают (изредка) случаи, когда нажатие на кнопку не срабатывает.

Pavel M. 25.11.2011 10:21

сделал бы работающий пример, быстрее бы помогли

Almiur 25.11.2011 10:35

Как понять работающий пример? Ссылку на страничку с этим примером, чтобы он запустился, и все посмотрели?

Pavel M. 25.11.2011 10:43

попробовал твой пример в http://jsfiddle.net запустить - ничего не увидел
и интерес разбираться уменьшился

как оформлять чтобы работало на этом сайте http://javascript.ru/formatting

Almiur 25.11.2011 11:22

А как быть, если нужна картинка (img)?

Skipp 25.11.2011 11:39

Цитата:

Сообщение от Almiur
А как быть, если нужна картинка (img)?

А кто вам мешает указать полный путь на какую нибудь картинку?
<img src="http://www.google.ru/images/srpr/logo3w.png" />

Pavel M. 25.11.2011 11:39

Цитата:

Сообщение от Almiur
А как быть, если нужна картинка (img)?

напиши абсолютную ссылку, например, src="http://..."


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