Вызывается onMouseOut если при обработке onMouseOver меняю месторасположение другого

NilovSerge

Новичок
Вызывается onMouseOut если при обработке onMouseOver меняю месторасположение другого

Всем привет.
Скажите ,я тут неожиданно для себя обнаружил, что при обработке события onMouseOver на картинке если меняю месторасположение другого обьекта,
то вызывается onMouseOut, хотя фокус по прежнему на картинке.

У меня есть картинка для просмотра и список картинок-иконок. Я хочу перетаскивая одну из иконок в и бросив ее
в области картинки для просмотра - отобразить картинку выбранной иконки.
Делаю иконку:
<img id="ThumbImage_1" onMouseOver="ImageMouseOver(this,1,&quot;tmn_16-450.jpg&quot;,&quot;16-450.jpg&quot;,event)" onMouseOut="ImageMouseOut(this,1,&quot;tmn_16-450.jpg&quot;,event)" src="ImagesLib/tmn_16-450.jpg" width="100" height="80" >

Для перетаскивания я сделал отдельный <div id="DraggableDiv" и если мышка на иконке, то я этот div помещаю поверх иконки,
делаю его полупрозрачным и рисую на нем текущую иконку.

проблема в том, что если мышкой елозить на картинке не выходя за пределы этой картинке, то вызывается события onMouseOut(и следом onMouseOver).
Это происходит когда я програмно меняю координаты дива DraggableDiv:
function ImageMouseOver(ImageObj,ImageId,ThumbFileName,FileName,eventObj) {
...
расчеты
...
document.getElementById("DraggableDiv").style.left= (parseInt(Новые координаты); // Если эту строку закоментарить то onMouseOut не вызывается
}

Это можно как-то побороть? во многих других средствах разработки есть что-то типа DisableControls. В JS есть ли что-то наподобе?
 

cDLEON

Онанист РНРСlub
А чем не выход не обрабатывать это событие ? Просто пропустить?
 

NilovSerge

Новичок
Ну так в том то и идея : навели мышку на картинку На ней отрылся полупрозрачный див DraggableDiv который и тягаю по окну

-~{}~ 26.12.07 18:50:

еще я в function ImageMouseOver этот див делал видимым так как если нет выделенной картинки - то этот див не видимый

document.getElementById("DraggableDiv").style.visibility= "visible";

а эта строка до document.getElementById("DraggableDiv").style.left или после - результат тотже

Может это все по другому делается?
 

RoLex

Новичок
Re: Вызывается onMouseOut если при обработке onMouseOver меняю месторасположение друг

Для перетаскивания я сделал отдельный <div id="DraggableDiv" и если мышка на иконке, то я этот div помещаю поверх иконки,
делаю его полупрозрачным и рисую на нем текущую иконку.
вот это вообще не понятно для чего? рисуешь иконку, потом поверх нее див, потом в него же "вставляешь" ту же иконку. или я не так понял?

проблема в том, что если мышкой елозить на картинке не выходя за пределы этой картинке, то вызывается события onMouseOut(и следом onMouseOver).
так за пределы картинки - области для просмотра или картики - иконки?
у твоей картинки - области для просмотра иконок происан обработчик onMouseOut?

если я правильно понял, у тебя есть область для просмотра иконок - основная картинка. назовем это слой1
есть див - слой2
есть картинка иконка - слой3

1. не понимаю зачем тут вообще див, можно картинку перетаскивать и без него.
2. проверь, у каких слоев (слой1 слой2 слой3) у тебя прописаны обработка событий onMouseOut и onMouseOver
если при перемещении мышки она переходит со слоя3 на слой2 - то вызывается обработка собтия onMouseOut для слоя3 и onMouseOver для слоя2
если же мышка переходит на слой1, то onMouseOut для слоя2 и onMouseOver для слоя1
если же конечно у тебя для них прописаны обработки этих событий.

-~{}~ 27.12.07 12:05:

кстати, зачем такие заморочки с вбрасыванием иконки в область для просмотра?
удобнее было бы сделать так:

есть иконка картинки. наводишь на нее мышку - на стр появляется картинка этой иконки.
уводишь мышку с иконки - картинка пропадает.

или если не уводить мышь с иконки, можно на картинку повесить обработчик onClick - то есть, чтобы убратькартику со страницы, по ней надо будет кликнуть.

так будет меньше монипуляций для пользователя (навел - отобразилась картинка, увел - картинка пропала, или кликнул картинка пропала)

то есть всего два действия,
а в твоем случае полуается надо делать три действия.

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