2010-09-21 44 views
2

我有一個帶有Infragistics webgrid的ASP.NET頁面。我使用Javascript中的幾個方法處理網格行上的mouseover,mouseout事件,將鼠標光標更改爲指針,並在鼠標懸停在行上時返回到默認值。我還切換鼠標懸停行的顏色。JavaScript無法說服鼠標更改其光標

當我在本地調試頁面時,它工作正常。當我發佈到測試服務器並在Iexplore(8)中的VS之外運行時,鼠標光標不會改變。它保持箭頭。不過,該行正確切換背景顏色。

我想這是一個緩存問題,但是當我在顯示document.body.style.cursor的方法中添加一個警告框時,它正確顯示了警報中的遊標狀態;它只是不改變鼠標光標。我已清除瀏覽器中的緩存,刪除並重新發布,向javascript文件鏈接添加GUID查詢字符串等。

如果我在Firefox中的測試服務器上嘗試頁面,它會正確顯示指針遊標。

function _projGrid_MouseOverHandler(gridName, id, objectType) { 

    if (objectType == 0) { 
     document.body.style.cursor = 'pointer'; 
     // alert('mouse pointer should be: ' + document.body.style.cursor); 
     var cell = igtbl_getCellById(id); 
     var elem = cell.Element; 
     setRowBackColor(cell.Row, "F0E68C"); 
    } 
} 

function _projGrid_MouseOutHandler(gridName, id, objectType) { 
    if (objectType == 0) { 
     document.body.style.cursor = 'default'; 
     // alert('mouse pointer should be: ' + document.body.style.cursor); 
     var cell = igtbl_getCellById(id); 
     setRowBackColor(cell.Row, "white"); 
    } 
} 

function setRowBackColor(row, color) { 
    var cells = row.getCellElements(); 
    for (var i = 0; i < cells.length; i++) { 
     cells[i].style.backgroundColor = color; 
    } 

任何想法都將是最受歡迎的!

更新:我也有類似的problems與CSS

+0

您是否嘗試過其他瀏覽器而不是IE8或CSS方法? – Robert 2010-09-21 21:25:15

+0

document.body.style.cursor ='手'與IE一起工作嗎?不是我建議 - 只是嘗試創意。 – DaveHogan 2010-09-21 21:27:54

+0

我試過測試服務器上的Firefox,它正確顯示指針(手)。 – GernBlandston 2010-09-21 21:28:47

回答

1

回答被發現here

「當IE呈現在localhost,它將使用標準兼容的模式。

然而,當它呈現的Intranet上,它將使用兼容模式。

唐不問我爲什麼這麼做,它只是爲了讓我們的開發人員生活而激起的任意MS事件之一。

只需將此添加到您的標題,以強制IE進入標準兼容模式:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />" 
+0

您可能希望將此標記爲接受的答案。 – 2011-02-18 15:30:38

0

用CSS做它:

.grid .row:hover { 
    cursor: pointer; 
    background-color: #F0E68C; 
} 

OR

.grid tr:hover { 
    /* ... */ 
} 

如果你沒有必要的類,你可以嘗試使用類似jQuery的設置: $("selector").addClass("row");您還可以使用自定義函數filter()或與每個如有必要,單獨提供:

$(".grid").each(function() { 
    $(this).find("tr > td").each(function() { 
    $(this).addClass("cell"); 
    }); 
}); 

請注意,上述示例僅用於說明目的。

+0

我發現我有一個與CSS類似的問題︰http://stackoverflow.com/questions/3770103/ie-displays-page-differently-between-debug-in-visual-studio-and-on-the-服務器 – GernBlandston 2010-09-22 14:24:45

0

您應該將光標設置在單元格級別而不是文檔級別。

不確定爲什麼你要在第一個地方用JavaScript設置光標,當你可以在CSS文件中爲相關的tds設置它時。

+0

但是,爲什麼它在Debug中工作,而不是在發佈的服務器上? – GernBlandston 2010-09-21 21:47:02