日期:2014-05-16  浏览次数:20323 次

jQuery,mouseout的时候如何判断离开的对象
我想做一个,鼠标放在p.cp的时候弹出一个信息窗口,当鼠标离开的时候,信息窗口消失,这个不难,类似下面的代码即可。
现在有一个问题,就是想,鼠标离开p.cp但是放在信息窗口了,不让窗口消失,怎么弄?
$("p.cp").mouseover(function() {

  divHover.show();
  divHover.offset({
  top: $(this).offset().top,
  left: $(this).offset().left + $(this).width()
  });
  });
  $("p.cp").mouseout(function(e) {
  e = e || window.event;
  to = e.toElement || e.relatedTarget;
  if (e == divHover) {
  return false;
  }
  divHover.hide();
  //$(this).removeClass("selected");
  });

------解决方案--------------------
鼠标离开后,注册个事件让信息窗口一秒钟后关闭
鼠标移入信息窗口,取消这个事件
------解决方案--------------------
JScript code

var isRuning=false;
$("p.cp").mouseover(function() {
  //增加一个判断
  if(isRuning){
     divHover.stop();
     return;
  }
  divHover.show();
  divHover.offset({
  top: $(this).offset().top,
  left: $(this).offset().left + $(this).width()
  });
});
$("p.cp").mouseout(function(e) {
     isRuning=true;//标记正在隐藏
     e = e || window.event;
     to = e.toElement || e.relatedTarget;
     if (e == divHover) {
       return false;
     }
     divHover.hide(1000,function(){isRuning=false;});//隐藏完毕后,改变变量
     //$(this).removeClass("selected");
});