Событие onmouseout JavaScript вызывается, когда я перемещаю курсор над элементом, не выходя из элемента - PullRequest
1 голос
/ 27 сентября 2010

У меня есть изображение на странице, и в событии «onmouseover» этого изображения я буду вызывать функцию JavaScript для отображения всплывающей подсказки, а в «onmouseout» изображения я вызову метод, чтобы скрыть подсказку.Теперь я обнаружил, что, когда я помещаю курсор на изображение, он вызывает метод для отображения всплывающей подсказки div.

И если я перемещаю мышь внутри изображения, он вызывает событие onmouseout (даже если я невне изображения).Как я могу это остановить?Я хочу, чтобы onmouseout вызывался, когда курсор находится вне изображения.Есть мысли?

Вот как я это называю:

 <img src="images/customer.png" onmouseout="HideCustomerInfo()" onmouseover="ShowCustomerInfo(485)" />

И в моем JavaScript:

 function ShowCustomerInfo(id) {


 var currentCustomer = $("#hdnCustomerId").val();   
 if (currentCustomer != id) { // to stop making an ajax call everytime when the mouse move on the same image

     $.get('../Lib/handlers/userhandler.aspx?mode=custinfo&cid=' + id, function (data) {
         strHtml = data;
     });

     tooltip.show(strHtml);   // method in another jquery pluggin
     $("#hdnCustomerId").val(id);
 }
}

function HideCustomerInfo() {

 tooltip.hide();    // method in another jquery pluggin
 $("#hdnCustomerId").val(0); //setting in a hidden variable in the page

 }

Ответы [ 3 ]

2 голосов
/ 27 сентября 2010

Я предполагаю, что вы наводите курсор на всплывающую подсказку?и у всплывающей подсказки есть разметка вне области изображения?

Таким образом, наведя указатель мыши на подсказку, вы технически покидаете изображение.У меня были подобные вещи со мной.

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

Это может сработать.

1 голос
/ 25 марта 2013

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

0 голосов
/ 27 сентября 2010

Вы уверены, что HideCustomerInfo() вызывается обработчиком события onmouseout изображения? Кроме того, в каких браузерах вы получаете это? Вы получаете такое поведение в одном конкретном браузере?

...