Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   jnMouseUp в FF (https://javascript.ru/forum/events/1293-jnmouseup-v-ff.html)

krot357 10.06.2008 19:14

jnMouseUp в FF
 
Доброго времени суток всем. Сорри за простой вопрос (я новичок в JS)- поиском не нашел. Проблема в следующем: Есть два div-a (div1 и div2). В div1 есть img с определенными onMouseDown и onMouseUp. По mouseDown div1 присваевается display=none, а div2 - display=block. По mouseUp, соответсвенно наоборот. Идея в том : Пока держишь нажатой кнопку на img виден div2 с картинкой большего размера, отпустил кнопку - вернулся к превьюшкам. В IE работает, а в FF обработчик onMouseUp не вызывается( я так понимаю из-за того что img в этот момент не отображается). Как это можно обойти.

Snipe 10.06.2008 21:29

разместить mouseUp на второй див?

Gvozd 10.06.2008 22:35

вот наваял на скорую руку такое решение:
поместить картинки в общий див, и ему повесить обработчики.
<div style="height:10;width:10;" onmousedown="view_big(this)" onmouseup="view_small(this)" >
<img src="big.gif" style="display:none" />
<img src="small.gif" style="display:inline-block" />
</div>

function view_big(parent_node)
	{
	if( parent_node.image_preview == undefined )
		parent_node.image_preview=parent_node.getElementsByTagName('IMG');
	parent_node.image_preview[1].style.display="none";
	parent_node.image_preview[0].style.display="block";
	}
function view_small(parent_node)
	{
	if( parent_node.image_preview == undefined )
		parent_node.image_preview=parent_node.getElementsByTagName('IMG');
	parent_node.image_preview[0].style.display="none";
	parent_node.image_preview[1].style.display="block";
	}

krot357 11.06.2008 09:18

Всем спасибо. Уже разобрался. IE генерит события и для невидимых элементов, а FF нет. Поэтому обработчик onMouseUp поместил, как и советовал Snipe на div контейнер внутри которого лежат два исходных div-а,
теперь работает и в IE и в FF


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