Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Не отрабатывает событие onmouseout при внедрении нового слоя (https://javascript.ru/forum/dom-window/1479-ne-otrabatyvaet-sobytie-onmouseout-pri-vnedrenii-novogo-sloya.html)

ilshat 28.07.2008 02:41

Не отрабатывает событие onmouseout при внедрении нового слоя
 
На ячейку таблицы повешены onmouseout и onmouseover, чтобы при наведении менялся фон ячейки.
При нажатии на ячейку, в документе происходит внедрение слоя с некоторой информацией.
Проблема в том что когда слой внедряется и мышь остается над элементом с фоном - то событие onmouseout,после загрузки слоя, не отрабатывает и бакграунд ячейки остается таким каким стал при наведении мыши, даже если мыша над ним давно нет.
Такое ощущение что у элемента теряется фокус.
При проведении мыши - просто без клика - все отрабатывает без ошибок, за исключением - если движение происходит не быстро.

Может кто сталкивался с этими проблемами.
Вот код смены фона
function st_mouse(element,mouse_over,col){
  if ( mouse_over == 1 )  {
  js_over_col=element.style.backgroundColor;
  element.style.backgroundColor=col;  }
  else  {
  element.style.backgroundColor=js_over_col;  
  }
}

а вот код элемента
onmouseover="st_mouse(this,1,'#D9BFB6')";onmouseout="st_mouse(this,0,'none')";

Андрей Параничев 28.07.2008 06:03

Уберите ";" из кода элемента, они должны быть либо внутри двойных кавычек, либо их не должно быть вовсе. Если не сложно, подскажите где пишут, что их нужно расставлять подобным образом, так как не знаю откуда это пошло, но встречаю далеко не в первый раз.

ilshat 28.07.2008 06:19

хм... видимо на автомате поставил когда вставлял код в пост.

onmouseover="st_mouse(this,1,'#D9BFB6')" onmouseout="st_mouse(this,0,'none')";

ilshat 28.07.2008 06:27

добавлю
браузер IE6

кроме того заметил:
на этот элемент у меня поставлен другой вид курсора... и после внедрения слоя... курсор меняется на стандартный... хотя остается на том же месте...


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