2011-02-17 18 views
0

我有一个关于悬停和jQuery一个小问题:我怎样才能让jQuery来包括等元素融入悬停

我创建了一个表出来的MySQL数据库。有一些特定的行,属性显示:none,以便不显示它们。但是如果你在元素上放置了一个可见元素,那么这个不可见元素应该变得可见(也许,有不止一个不可见元素,比直到下一个可见元素的所有不可见元素都可见)。鼠标离开这些元素,不可见的元素应该再次消失我已经做了一个函数,它正是我想要的,除了一个小东西,我想把悬停不仅指向可见行,而且还指向不可见,这意味着,如果你将鼠标从可见元素上移开到以前的不可见元素,它们不应该消失,但它们确实!我试图用跨度来组织tr,但是看起来在HTML中没有就像表格中的跨度一样,除非它们不在td中,之后我试图用鼠标的位置来解决问题,并将鼠标移动到所有元素上,但这也行不通(在下面的例子中,我尝试过首先是可见元素本身的xy位置,如果我得到这份工作,我会把它扩展到以前的无形元素。

$("#NH00").hover(
    function(){ 
     $('tr[name="hiddenNH00"]').show();}, 
    function(){ 
     $("*").one("mousemove", function(e) { 
      var offset = $(this).offset(); 
      var xlt = offset.left; 
      var ylt = offset.top; 
      var xrb = offset.left + $(this).outerWidth(false); 
      var yrb = offset.top + $(this).outerHeight(false); 
      if(e.pageX < xlt || e.pageX > xrb || e.pageY < ylt || e.pageY > yrb){ 
       $('tr[name="hiddenNH00"]').hide(); 
      } 
     }) 
    } 
); 
+0

你可以添加你所指的表格的HTML吗? – DuXati 2011-02-17 15:37:15

回答

0

为什么不将相同的事件处理程序附加到“不可见”行?

$("#NH00, tr[name='hiddenNH00']").hover(
    function(){ 
     $('tr[name="hiddenNH00"]').show(); 
    }, 
    function(){ 
     $('tr[name="hiddenNH00"]').hide(); 
    } 
); 

DEMO

+0

因为在第二次鼠标悬停时,“不可见”行消失,这就是为什么鼠标悬停效果不起作用,我在开始时尝试了这个权利。 – Mischka 2011-02-17 15:36:23

1

看一看的jExpand plugin
我看到的唯一可能的问题是,它似乎期望有一个可见的行,以及一个隐藏的行而不是多个,如您所描述的。

如果该的问题,也许你可以重新工作你的标记,使可见行与现在相同,但隐藏的行在第二行的嵌套表中。

请确保您阅读了评论。显然,有人修复了一个IE8问题,我不确定它是否会将它重新写入实际的文档中。

相关问题