【发布时间】:2010-03-02 12:41:08
【问题描述】:
我试图在鼠标悬停时突出显示表格行。每一行(tr)已经有一个“偶数”或“奇数”类。因此,要在鼠标悬停时突出显示该行,我需要先从该行中删除 CSS 类“偶数”或“奇数”。请多看我的剧本:
$('tr').hover(function() {
if ($('this').hasClass('even')) {
$(this).removeClass('even');
$(this).addClass('rowhover');
}
else {
$(this).removeClass('odd');
$(this).addClass('rowhover');
}
},
function() {
$(this).removeClass('rowhover');
});
但是,它不起作用。你能指出我的错误吗?谢谢。
更新 1:
我用这个 toggleClass 喜欢这个
$("tr").hover(function() {
$(this).toggleClass("rowhover");
});
然后我用萤火虫检查元素,tr得到了这样的类:
<tr class="even rowhover"> where it should be <tr class="rowhover">
如果我这样使用,结果相同:
$('tr').hover(function() {
$(this).addClass('rowhover');
},
function() {
$(this).removeClass('rowhover');
});
我的用于 rowhover 类的 CSS
.rowhover {background:green !important;}
更新 2:
我尝试了贾斯汀约翰逊的建议:
$('tr').hover(function() {
$(this).removeClass('even odd').addClass('rowhover');
},
function() {
$(this).removeClass('rowhover').addClass(this.rowIndex % 2 == 0 ? "even" : "odd");
});
我用 FireBug 检查了元素,结果如下:
//Notice the space in the class=" rowhover" when mouse hover
<tr class=" rowhover">
//Notice the space in the class=" even", class=" odd" when mouse out
<tr class=" even"> or <tr class=" odd">
更新 3:它正在工作!
我关注了jQuery - Demonstrations and Examples of Tablesorter Plug-in 的帖子,但我需要添加 !important 来覆盖以前的样式,如下所示:
tr.overRow td { background-color:#FFFF99 !important; border :2px; }
我将该规则添加到 tablesorter 样式表的底部,然后使用以下脚本对其进行操作:
// Adds "over" class to rows on mouseover
$(".tablesorter tr").mouseover(function() { $(this).addClass("overRow"); });
// Removes "over" class from rows on mouseout
$(".tablesorter tr").mouseout(function() { $(this).removeClass("overRow"); });
现在,一切都按预期进行。谢谢大家的建议。很抱歉一开始没有提到我正在使用 jQuery tablesorter 插件,我只想突出显示悬停事件的行。
:D
【问题讨论】:
-
关于您的更新:请参阅我的解决方案。您可能需要 .even.rowhover、.odd.rowhover 而不仅仅是 .rowhover ...或者您可以使用 !important,但这是不得已的办法。
-
@Kamal 是的,它包含在 $(document).ready 中
-
当你说你可以在 firebug 中看到类时,我意识到 :)。无论如何,我已经在这里本地尝试了您在 FF 中的方法并且它正在工作(似乎与 toggleClass (突出显示为绿色))。你能定义“不工作”吗?因为在萤火虫中,如果你能看到类,它应该适用吗?
-
空格很好(根据更新 2)。另一个愚蠢的问题。你的偶数和奇数造型是否适用?你的css在哪里?您确定您的网页正在接收它吗?
-
当我将鼠标悬停在此样式应用的行上时 table.tablesorter tbody td { background-color:#FFFFFF; } 或此类应用 table.tablesorter tbody tr.odd td { background-color:#F0F0F6; } 而不是应该覆盖前一个类的类 rowhover 为什么类 rowhover 不覆盖前一个偶数和奇数?
标签: javascript jquery css tablesorter