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 в этот момент не отображается). Как это можно обойти.
|
разместить mouseUp на второй див?
|
вот наваял на скорую руку такое решение:
поместить картинки в общий див, и ему повесить обработчики. <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";
}
|
Всем спасибо. Уже разобрался. IE генерит события и для невидимых элементов, а FF нет. Поэтому обработчик onMouseUp поместил, как и советовал Snipe на div контейнер внутри которого лежат два исходных div-а,
теперь работает и в IE и в FF |
| Часовой пояс GMT +3, время: 20:00. |