Mouseleave div, измените цвет фона на серый, mouseleave для запуска Qtip внутри div, измените цвет фона на розовый

Название говорит само за себя, вот что у меня есть до сих пор, но цвет фона всегда остается серым при наведении мыши, а не розовым при наведении qtip:

$().ready(function() {
$("#openDiv").mouseleave(function (e) {
var used_classes = ['qtip'];
var $c = $(e.relatedTarget).attr('class');

if ($c=='qtip')
  {
   $("#openDiv").css('background-color', 'pink');
  } else{
   $("#openDiv").css('background-color', 'grey');
  }
 });
 });

http://jsfiddle.net/bUzPG/21/ с полной настройкой. Это сводит меня с ума!
Любой ответ, решающий эту проблему, будет помечен как ответ.


person Wonka    schedule 08.07.2011    source источник


Ответы (1)


что я вижу, так это то, что событие срабатывает, когда мышь покидает '#openDiv' , и тогда e.relatedTarget будет тем, что вы вводите, когда уходите, что ничего не значит. Если вы хотите, чтобы основной div становился розовым при наведении курсора на qtip, вы должны использовать .hover (или .mouseenter, чтобы сделать его розовым) на qtip, например, просто...

$(".qtip").hover(
  function() {
    $("#openDiv").css('background-color', 'pink')
  },
  function() {
    $("#openDiv").css('background-color', 'white')
  }
)

Я вижу, что qtip, кажется, создается после того, как DOM готов, поэтому вместо этого вы можете использовать .live...

$(".qtip").live('mouseenter', function() {
    $("#openDiv").css('background-color', 'pink')
  })
  .live('mouseleave', function() {
      $("#openDiv").css('background-color', 'white')
    }
)
person Rodolfo    schedule 08.07.2011
comment
Работает как шарм :) Спасибо, Родольфо. - person Wonka; 08.07.2011