2009-11-24 67 views
0

我正在一個樣式表使用此命令:jQuery的:奇/偶行元素+徘徊

$("tr").filter(":odd").addClass("odd"); 

工作良好。現在我有一個懸停功能,當我將光標移動到一行時會顯示光標。

問題:在懸停出來時,我希望表格行再次取回它的「奇怪」類,以保持2色佈局。不幸的是它不起作用 - 懸停將導致一個普通的類。

這裏是我徘徊代碼:

function hover = function(tr,cod) 
{ 
    if(cod) 
    { 
     tr.addClass("hover"); 
    }else{ 
     if(tr.is(":odd")) 
     { 
      tr.addClass("odd"); 
     }else{ 
      tr.removeClass(); 
     } 
    } 
} 

誰能告訴我有什麼不對?

thx提前。

+0

我建議使用':第n個孩子(奇數)'而不是':odd'過,至於原因,如果你曾經條紋在一個頁面上覆式表,並希望奇數和每個偶數行,這將成爲明顯表是相同的顏色:) – 2009-11-24 13:55:24

回答

2

您應該使用toggleClass()而不是addClass()+ removeClass()。

+0

謝謝,這正是我一直在尋找。 – Fuxi 2009-11-24 18:37:28

3

我想你想要這個:

function hover = function(tr,cod) 
{ 
    if(cod) 
    { 
     tr.addClass("hover"); 
    }else{ 
     tr.removeClass("hover"); 
    } 
} 

調用removeClass()是消除所有的類。由於節點可以應用多個類,所以只需添加和刪除類就可以了,不管它是否奇怪。

1

你不需要刪除所有添加的類。只需在您的css中使用!懸停類。它會覆蓋奇怪的類。

.hover {background-color:green !important;} 
.odd {background-color:blue} 

$("#datatable tr:odd").addClass("odd"); 
$("#datatable tr").mouseover(function() { $(this).addClass("hover"); }); 
$("#datatable tr").mouseout(function() { $(this).removeClass("hover"); });