我对悬停和jQuery有一点问题:
我用mySQL-Database创建了一个表。有一些特定的行,属性显示:none,以便不显示它们。但是如果你把元素放在隐藏的元素之上,那么隐形元素应该变得可见(也许,有不止一个不可见的元素,直到下一个可见元素的所有不可见元素都应该变得可见。如果你得到的话。鼠标离开这些元素,看不见的那些元素应该再次消失。我已经创建了一个函数,它完全符合我的要求,处理了一个小东西。我想将悬停不仅引用到可见行,还引用到隐形,这意味着,如果你把鼠标从可见元素上移开,对于以前看不见的元素,它们不应该消失,但是它们会这样做!我试图用跨度组织tr,但它似乎在HTML中没有像表中的跨度,除非它们不在td中。之后我尝试用tr鼠标位置解决问题,并将鼠标移动到所有元素。这也不起作用(在下面的例子中我试过首先是可见元素本身的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 :(得分:1)
看一下jExpand plugin 我看到的唯一可能的问题是它似乎期望有一个可见行,一个隐藏行而不是倍数,正如您所描述的那样。
如果 出现问题,也许您可以重新设置标记,以使可见行与现在相同,但隐藏的行位于辅助行的嵌套表中。 / p>
请务必仔细阅读评论。显然有人修复了一个IE8问题,我不确定它是否已经回到了实际的文档中。
答案 1 :(得分:0)
为什么不将相同的事件处理程序附加到“不可见”行?
$("#NH00, tr[name='hiddenNH00']").hover(
function(){
$('tr[name="hiddenNH00"]').show();
},
function(){
$('tr[name="hiddenNH00"]').hide();
}
);