4

我想在图像/链接悬停上显示一个 DIV,我已经编写了以下代码

   $("#NotificationSummary").hover(
      function () {
          $("#dvNotifications").slideDown();
      },
      function () {           

          $("#dvNotifications").slideUp();
      }
    );

DIV 在悬停时显示,但是当我移动到 div 时它会隐藏,当鼠标悬停时如何阻止 div 隐藏

请查看演示http://jsfiddle.net/3hqrW/15/

4

3 回答 3

3

[根据评论重新编辑] jsfiddle 修改,删除了仅 css 的解决方案诀窍是监视滑动元素的悬停状态并使用超时来允许用户在滑动元素上移动(另请参见更新的 jsfiddle 中的注释)。

jsfiddle 源自 OPs jsfiddle @here

使用您的#ids 的悬停功能:

function hover(e){
 e = e || event;
 var el = e.target || e.srcElement
    ,showel = $('#dvNotifications')
 ;
 if (!/NotificationSummary/i.test(el.id)) {
  showel .attr('data-ishovered',/over/i.test(e.type));
 } else {
  showel .attr('data-ishovered',false)
 }

 if (/true/i.test(showel .attr('data-ishovered'))){return true;}

 if (/over$/i.test(e.type) && /NotificationSummary/i.test(el.id)){
    showel .slideDown();
 } else {
    setTimeout(function(){
        if (/false/i.test(showel .attr('data-ishovered'))) {
            showel .slideUp();
            showel .attr('data-ishovered',false);
        }
      }
    ,200);
 }

}

于 2012-06-25T07:02:47.273 回答
1

Tanveer 请看这个演示:http: //jsfiddle.net/rathoreahsan/3hqrW/

您要在悬停时显示的 div 应该在您要悬停的主 div 内,并且主 div 应该具有 css 属性:display:block

另一个演示:http: //jsfiddle.net/rathoreahsan/SGUbC/

于 2012-06-25T06:10:48.973 回答
-1
  $("#NotificationSummary").mouseenter(function() {
       $("#dvNotifications").fadeIn();
  }).mouseleave(function() {
      $("#dvNotifications").fadeOut();
  });
于 2012-06-25T07:09:17.123 回答