jquery mouseover/mouseout

Posted

技术标签:

【中文标题】jquery mouseover/mouseout【英文标题】: 【发布时间】:2011-03-03 22:08:39 【问题描述】:

在下面的代码中,一旦鼠标移出,鼠标再次悬停就不起作用了,解决方法是什么

 <!DOCTYPE html>
  <html>
  <head>
  <style>
  /* div  background:#def3ca; margin:3px; width:80px; 
  display:none; float:left; text-align:center; */
  </style>
  <script src="http://code.jquery.com/jquery-latest.min.js"></script>
  </head>
  <body>
  <div id="playControls" style="position:absolute; bottom:0px; left:0px; right:0px;color:blue;">
 Mouse over me
  </div>
  <script>
  $(document).ready(function() 
  $("#playControls").mouseover(function () 
  alert('here');
  $("div:eq(0)").show("fast", function () 
     /* use callee so don't have to name the function */
     $(this).next("div").show("fast", arguments.callee);
  );
  );
  $("#playControls").mouseout(function () 
  alert('here');
  $("div").hide(2000);
  );
  );

  </script>
  </body>
  </html>

【问题讨论】:

【参考方案1】:

这一行隐藏了页面上的所有 div:

$("div").hide(2000);

我认为这不是你想要的。它还将隐藏处理鼠标悬停/鼠标悬停的 div。

我想你的意思是:

$(this).next("div").hide(2000);

这将只隐藏你想要的 div。

【讨论】:

不,我不想要这个,但我应该能够找回 div,怎么做 目前还不是很清楚预期的行为是什么。你能解释一下你想在 mouseover/mouseout 上发生什么吗? 鼠标悬停在 div 上,div 应该可见,否则隐藏 div @Hulk 如果它是隐藏的,你怎么能将鼠标悬停在某个东西上? o.O【参考方案2】:

使用hover 函数。它是专门为这种使用模式而设计的。

【讨论】:

【参考方案3】:
$("#playControls").mouseout(function () 
  alert('here');
  $("div").hide(2000);
);

在这部分代码中,当鼠标移出 div#playControls 时,将隐藏所有 div。无法触发 div 的 mouseover 事件的原因是 div 被隐藏了。

【讨论】:

以上是关于jquery mouseover/mouseout的主要内容,如果未能解决你的问题,请参考以下文章

如何:在 mouseOver/mouseOut - JQuery .hover 上添加/删除类?

jQuery 问题 - mouseover/mouseout 太快

jQuery 悬停 mouseover/mouseout 计时

jquery mouseover/mouseout

jQuery mouseover / mouseout 显示/隐藏 div

JQuery--mouseover()与moseout()的区别