2009-12-07 143 views
2

我有一个客户数据表。我正在使用jquery悬停来为客户显示actions(Edit, Delete, View)维护鼠标悬停在jquery上的悬停菜单

下面是HTML:

<table id="hovertable" width="100%" cellpadding="0" cellspacing="0"> 
    <tr> 
     <td> 
      Row 1 Column 1 
     </td> 
     <td> 
      Row 1 Column 2 
     </td> 
     <td> 
      <input type="hidden" name="iVal" value="1" /> 
      Row 1 Column 3 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Row 2 Column 1 
     </td> 
     <td> 
      Row 2 Column 2 
     </td> 
     <td> 
      <input type="hidden" name="iVal" value="2" /> 
      Row 2 Column 3 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Row 3 Column 1 
     </td> 
     <td> 
      Row 3 Column 2 
     </td> 
     <td> 
      <input type="hidden" name="iVal" value="3" /> 
      Row 3 Column 3 
     </td> 
    </tr> 
</table> 
<div id="hovermenu" style="display: none; position: absolute;"> 
    <a href="Home/Edit/" id="hoverlink">Edit</a> 
</div> 

和脚本是在这里:

<script type="text/javascript" language="javascript"> 
    $(document).ready(function() {    
     $("#hovertable tr").hover(
      function() { 
       var pTop = $(this).offset().top; 
       var pLeft = $(this).offset().left + $(this).width() - "10"; 
       $('#hoverlink').attr("href", "/Home/Edit/" + $(this).find('input[name=iVal]').val()); 
       $("#hovermenu").css({ 
        top: pTop, 
        left: pLeft 
       }).show(); 
      }, 
      function() { 
      $("#hovermenu").hide(); 
      }); 
    }); 
</script> 

当我移动鼠标在桌子上的每一行,我可以能够以示对行动顾客排。但是当我将鼠标移动到actions(Edit, Delete, View)上时,它隐藏了悬停菜单。

解决方法是什么?

回答

3

添加到您的javascript:

$("#hovermenu").hover(
    function(){ 
    $(this).show(); 
    }, 
    function(){} 
); 

应该保持展示你的菜单,而它徘徊。

+0

你的例子演示了悬停(进出),所以菜单永远不会被隐藏。 Out事件应该激发一个隐藏功能。 。 $( “#hovermenu”)悬停( 函数(){$ (本).show();} , 函数(){$ (本).hide();} ); – BenTheDesigner 2009-12-07 14:02:42

+0

不是真的,它已经隐藏在行的悬停。只有当您将鼠标悬停在与其相关的行上时,您才不想隐藏“编辑”菜单。 我试过这个代码,它的工作原理。 – 2009-12-07 14:05:55

+0

工作完美。 – Prasad 2009-12-07 14:40:08