Javascript 如何使jQuery在hover中包含其他元素

Javascript 如何使jQuery在hover中包含其他元素,javascript,jquery,html,jquery-selectors,Javascript,Jquery,Html,Jquery Selectors,关于hover和jQuery,我有一个小问题: 我已经用mySQL数据库创建了一个表。有一些特定的行显示属性display:none以不显示它们。但是如果你把鼠标放在不可见的元素上,不可见的元素应该是可见的(可能有不止一个不可见元素,直到下一个可见元素的所有不可见元素都应该可见。如果你将鼠标从这些元素上移开,不可见的元素应该会再次消失。我制作了一个函数,它完全符合我的要求,除了一件小事。我希望鼠标悬停不仅仅指可见行,但对不可见行也是如此,这意味着,如果将鼠标从可见元素上移开,对于以前的不可见元素

关于hover和jQuery,我有一个小问题:

我已经用mySQL数据库创建了一个表。有一些特定的行显示属性display:none以不显示它们。但是如果你把鼠标放在不可见的元素上,不可见的元素应该是可见的(可能有不止一个不可见元素,直到下一个可见元素的所有不可见元素都应该可见。如果你将鼠标从这些元素上移开,不可见的元素应该会再次消失。我制作了一个函数,它完全符合我的要求,除了一件小事。我希望鼠标悬停不仅仅指可见行,但对不可见行也是如此,这意味着,如果将鼠标从可见元素上移开,对于以前的不可见元素,它们不应该消失,但它们确实消失了!我尝试用跨距来组织tr,但HTML似乎不喜欢表中的跨距,除非它们不在td中。之后,我尝试解决这个问题使用tr键设置鼠标位置,并将mousemove绑定到所有元素。这也不起作用(在下面的示例中,我首先尝试了可见元素本身的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();
            }
        })
    }
);
$(“#NH00”)。悬停(
函数(){
$('tr[name=“hiddenNH00”]”)。show();},
函数(){
$(“*”).one(“mousemove”,函数(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);
如果(e.pageXxrb|e.pageYyrb){
$('tr[name=“hiddenNH00”]”)。hide();
}
})
}
);

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

看一看地图。
我看到的唯一可能的问题是,它似乎期望有一个可见行和一个隐藏行,而不是您所描述的倍数

如果这是一个问题,也许可以重新处理标记,使可见行与现在相同,但隐藏行位于第二行的嵌套表中


确保你仔细阅读了评论。显然有人修复了IE8问题,我不确定它是否回到了实际文档中。

因为在第二次他鼠标移动时,“看不见的”行不显示,这就是鼠标悬停效果不起作用的原因,我一开始就尝试过这个方法。@Mishka:对我有效:(或者我不理解你的问题)。你能给你所指的表添加一些HTML吗?
$("#NH00, tr[name='hiddenNH00']").hover(
    function(){
        $('tr[name="hiddenNH00"]').show();
    },
    function(){
        $('tr[name="hiddenNH00"]').hide();
    }
);