2012-04-22 6 views
1

Мне нужно отобразить всплывающую подсказку для изображения при наведении курсора мыши. Я написал для этого следующий код. Моя текущая проблема заключается в том, что когда я помещаю изображение в div tooltip, событие происходит только для элемента изображения. Как я могу игнорировать событие mouseover и mouseout из дочернего элемента моей родительской подсказки div?ignore Событие Mouseout от дочернего элемента элемента Mouseover

$("document").ready(function() { 
     $('.tooltip').mouseover(function(e){ 
      var id = $(this).siblings('.tooltip-c').attr('id'); 
      $('.tp'+id).fadeIn(500); 
      $('.tp'+id).mouseout(function(event){ 
       $('.tp'+id).fadeOut(300); 
      }); 
     }); 
    }); 

Пожалуйста, помогите мне, ребята. Я беспомощна.

+0

В чем вопрос? – mihai

+0

Как игнорировать событие Mouseout из дочернего элемента элемента Mouseover? –

+0

Какой ребенок? ответ не может быть дан в текущей форме. – gdoron

ответ

2

Вы можете использовать способ .stopPropagation() в функции обработчика события.

$("document").ready(function() { 
    $('.tooltip').mouseenter(function(event){ 
     var id = $(this).siblings('.tooltip-c').attr('id'); 
     $('.tp'+id).fadeIn(500); 
     event.stopPropagation(); 
    }); 
}); 
+0

все тот же чувак ... –

+0

@Gihan Dilusha в параметре функции обработчика события передайте 'e' или' event', а затем используйте '.stopPropagation' в качестве своего метода. – undefined

+0

я использовал даже. но это то же самое :( –

17

Попробуйте использовать .mouseenter() и .mouseleave() вместо этого. Они обрабатывают событие пузырьков по-разному от .mouseover() и .mouseout(). Я думаю, что это должно решить вашу проблему:

$("document").ready(function() { 
    $('.tooltip').mouseenter(function(e){ 
    var id = $(this).siblings('.tooltip-c').attr('id'); 
    $('.tp'+id).fadeIn(500); 
    $('.tp'+id).mouseleave(function(event){ 
     $('.tp'+id).fadeOut(300); 
    }); 
    }); 
}); 
+0

Это решило мою проблему сразу, я не мог заставить другие решения работать для меня. –

+0

Работает лучше всех решений mouseover/mouseout, и все события предотвращают дефолт. Работает нормально в IE11 и Chrome. – Arvy