Это странно, я в шоке, я никогда не замечал этого раньше. Он работает так, если ваша мышь по-прежнему и div программно перемещается под мышью, событие mouseover не будет запускаться в chrome/safari - то же самое касается mouseout. Конечно, если вы слегка двигаете мышью, когда div перемещается под мышью, он будет работать так, как ожидалось.MouseOver MouseOut проблема в Safari/Chrome
Я создал demo on jsFiddle. Просто позвольте div осциллировать под мышью, отлично работает в firefox, а не в хроме или сафари, - еще предстоит проверить в ie.
Я склоняюсь к этому решению ... в основном качению собственного MouseEnter и MouseLeave события с помощью этого:
if (mouseX > divLeft && mouseX < divRight &&
mouseY > divTop && mouseY < divBottom){
// mouse is inside div
}
я говорю MouseEnter и уйти, потому что этот метод не будет иметь пузырьков
Мне было интересно, есть ли у кого-то еще мысли об этом ... У меня есть ощущение, что вокруг есть простой способ, но до сих пор Google ничего не изменил.
Только что отмеченный - IE 7 не запускает «mouseover» или «mouseout», когда мышь по-прежнему. – jball
+1, довольно интересно. Возможно, можно запустить событие с помощью javascript, проверив положение мыши при перемещении div. – JCOC611
круто спасибо, я просто стрелял в VirtualBox, чтобы проверить – Zevan