Ложное срабатывание onmouseout - возникает, когда курсор проходит над строкой текста
Блочный элемент имеет внутри себя параграф с текстом и ссылками. При прохождении курсора над ссылкой срабатывает onmouseout, как если бы курсор вышел за пределы этого блочного элемента.
Как с этим бороться? Может есть изящный метод? |
onmouseleaveвот тут подробнее http://javascript.ru/forum/misc/3050...ut-i-link.html |
Я так понял, оно у Вас должно срабатывать когда курсор внутри блока?Если так то сделайте так задайте блоку div такие вот стили
#div {background-color: red; height: 50px;} Этим вы узнаете сместился ли ваш блок а если так, то задайте высоту блоку, я указал 50px но должны указать свой размер. Если не так Вас понял то простите |
вот функция срабатует только когда курсор ушел с элемента а не ушел на потомка
function hover (options) { options.elem.onmouseover = ElemMouseAction; options.elem.onmouseout = ElemMouseAction; function ElemMouseAction (evt) { var related, Call; var e = evt || event; if(e.type == 'mouseover'){ Call = options.over; related = e.relatedTarget || e.fromElement; } else { Call = options.out; related = e.relatedTarget || e.toElement; } while (related && related != this) { related = related.parentNode; } if(related == this) return; Call(); } } //пример вызова hover({ elem: document.getElementById('elem'), over:function () {//функция для mouseover .... }, out:function () {//функция для mouseout .... }, }) |
Спасибо!
Кстати, оказалось, что onmouseleave работает не только под IE, но и под FireFox 13 - и у него нет подобного эффекта. Однако для кроссбраузерности это все равно не годится. В общем, правильно считать, что при onmouseout не курсор выходит за пределы элемента, как об этом пишут, а элемент скорее теряет фокус (или как это правильнее сказать?) А вот onmouseleave происходит именно когда курсор покидает пределы элемента (но к сожалению работает не везде). |
вы ж здесь с 2011 http://learn.javascript.ru/mousemove-events
|
bes,
Ну, я мимоходом) |
Цитата:
|
Часовой пояс GMT +3, время: 04:39. |