Mouseleave div,将背景颜色更改为灰色,mouseleave触发div中的Qtip,将背景颜色更改为粉红色

时间:2011-07-08 16:44:15

标签: jquery background qtip mouseout mouseleave

标题是自我解释的,这是我到目前为止所拥有的,但背景颜色在mouseout上始终保持灰色,而不是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/完成设置。这真让我抓狂!
任何解决此问题的答案都将标记为答案。

1 个答案:

答案 0 :(得分:1)

我看到的是当鼠标离开'#openDiv'时事件触发,然后e.relatedTarget将是你离开时输入的任何东西,这没什么。 如果你想要的是主要div在悬停在qtip上时变成粉红色,你应该在qtip上使用.hover(或.mouseenter将其设置为粉红色),就像简单...

$(".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')
    }
)