2012-10-15 49 views
0

我有一個HTML表,我提供了一些使用jQuery和CSS的懸停高亮功能。我的懸停事件是象下面這樣:jQuery CSS AddClass - 刪除類在Internet Explorer中移動Div

$('#' + element.id + ' tr:not(:first,[class="summary_row"])').die('mouseover mouseout').live('mouseover mouseout', function (event) { 
      if (event.type == 'mouseover') { 
       // do something on mouseover 
       $(this).addClass("table_row_hover"); 
      } else { 
       // do something on mouseout 
       $(this).removeClass("table_row_hover"); 
      } 
}); 

我只是添加和刪除一個CSS類對應的錶行,當鼠標越過和出來。我的CSS類(table_row_hover)很簡單,只包含背景色和前景色:

.table_row_hover 
{ 
    background-color: #660033; 
    color: #FFFFFF; 
} 

在我的表格,有一個包含尋呼機,爲表提供分頁功能,另一格。當我將鼠標懸停在表格行上時,它會將此分頁器div向下移動。每次我徘徊時,它都會轉移更多。這隻發生在Internet Explorer中,並且當表div具有可見的水平滾動條時(表格div具有屬性溢出:auto; overflow-y:hidden; -ms-overflow-y:hidden;)。

任何想法?

謝謝。

+0

你可以使用懸停和toggleClass減少代碼的長度.. –

回答

0

這是Internet Explorer中的一個已知錯誤。對於Internet Explorer,我找不到公共鏈接。這個錯誤是當你在元素中有一個水平滾動條時,它的高度會在addClass/removeClass上增加。微軟也明顯意識到這個問題,因爲它似乎已經在Internet Explorer 10中解決了。

+0

也許指向他的錯誤一些文檔?沒有這個,不是非常有用的答案嗎? –

0

live()函數已被棄用,所以請勿使用它。

$('#' + element.id + ' tr:not(:first,[class="summary_row"])').die('mouseover mouseout').on('mouseover mouseout', function (event) { 
$(this).toggleClass("table_row_hover"); 

})