2012-01-04 24 views
0

我正在使用Ajax控件工具包的TabContainer的頁面上工作。在每個TabPanel有一個GridView。在TabContainers中對GridView應用交替行樣式的更有效方法

<act:TabContainer runat="server"> 
    <act:TabPanel runat="server"> 
     <asp:GridView runat="server" ...> 
     </asp:GridView> 
    </act:TabPanel> 
     ... 
    <act:TabPanel runat="server"> 
     <asp:GridView runat="server" ...> 
     </asp:GridView> 
    </act:TabPanel> 
</act:TabContainer> 

然後在前端,JQuery tablesorter綁定到表。在的tablesorter綁定後,行以交替的方式風格,這與下面的代碼位完成:

var rows = $('tr.Clickable'); 

for (var i = 1; i < rows.length; i += 2) { 
    var oddrow = 'tr.Clickable:eq(' + i.toString() + ');'; 
    $(oddrow).addClass('odd'); 
} 

在一些機器上的瀏覽器返回警告了一個腳本所花費的時間太長完成,並且這是在之前的javascript被添加之後發生的。我認爲使用選擇器:tr.Clickable:eq(n)是罪魁禍首。

我想只在rows陣列環以及用於與行和是奇數索引做一個.addClass('odd'),然而,rows陣列的元件不具有.addClass方法,所以就用:eq選擇器補償。

這樣的工作,但非常緩慢,有沒有更快的方法來做到這一點?

回答

3

使用:odd選擇

$('tr.Clickable:odd').addClass('odd');