2009-07-03 57 views
0

我正在尋找提供網格內行的懸停狀態的最佳執行腳本。用戶JQuery - 突出顯示網格行的最佳實踐

90%具有IE6客戶因此我不能依靠CSS:懸停

網格是一個標準表中,某些細胞具有內部表。

我最初開始使用帶有mouseover和mouseout的.live方法,但是當將事件委託給文檔鼠標懸停時,將鼠標懸停在沒有網格的頁面部分上時,會產生大量的cpu影響。

我不想綁定到每個單獨的tr。

目前我在tbody上使用事件委託,並使用.parents方法獲取目標節點樹中的最後一個表格行。由於這個原因,我無法使用最接近的('tr')。

粗糙當前實現:

//event hookup 
$('table.grid>tbody') 
    .mouseover(rowenter) 
    .mouseout(rowleave); 

function rowenter(ev){ 
    ev.stopPropagation(); 
    var $parentTr = $(ev.target).parents('tr:last'); 
    if (! $parentTr.is('.hover')){ 
     $parentTr.addClass('hover'); 
    } 
} 

任何更好的實現的歡迎。

+0

他們爲什麼還在使用IE6?多麼浪費時間。寫入頁面與IE6兼容的人越少越好。將這些人踢進未來。 – Sneakyness 2009-07-26 09:39:36

+0

政府用戶,將花費£百萬,以方便升級 – redsquare 2009-07-26 11:32:07

+0

其實,我沒有投票這個,但我很感激你去下投票我所有的問題和答案:) – doomspork 2009-08-13 18:03:39

回答

-1

從我的問題的解決方案是最快的實施 - 使用本機事件委派。

2

在所有現代瀏覽器除了IE6你可以用CSS做到這一點:

tr:hover (background-color:yellow) 

這應該讓周圍所有的性能問題。