2012-02-17 82 views
0
dxo.CellClick.AddHandler(function(s, e) { 
    alert(s); 
    alert(event); 
    ChangeBackColor(event.srcElement,e.RowValue,e.ColumnValue,'ROUND'); 
}); 

我要補充的事件,但不能使它工作。在Chrome和IE中工作..但不是在FF中事件沒有定義FF

alert-> for s - > Object object alert-> for event - > Object MouseEvent in chrome and FF - > nothing .. console show events not defined。

回答

1

在IE中,event是一個全局變量(的window屬性),這是在JavaScript事件觸發之前設置。這是Chrome針對IE瀏覽器設計的網站友好的非標準行爲。 Firefox不會模仿這種非標準行爲。

standard behavior在於event對象傳遞到事件處理程序作爲一個參數。你需要在你使用的任何中間層(你沒有說過,而且我沒有立即認出它)中找到這個參數,然後用它來代替。 (也許是函數的e參數或e對象的某些屬性或s說法或它的一些特性??)

還要注意的是srcElement是特定於IE瀏覽器;您需要檢查srcElementtarget(同樣是standard form)。

(免得你想我在這裏抨擊微軟:IE的非標準形式實際上通用的標準  —例如,他們是誰從舊DOM0東西搬到上第一的那些,但它會如果他們會支持的第一個10年的標準中的標準形式是很好。)

0
event.srcElement 

這就是原因。 IE和Chrome使用srcElement,Firefox使用target。另外,Firefox期望通過event參數,所以在你的代碼中它是未定義的。

你可以試試這個(雖然我不確定在se參數是從何而來):

dxo.CellClick.AddHandler(function(event, s, e) { 
    alert(s); 
    alert(event); 
    ChangeBackColor(event.target ? event.target : event.srcElement, e.RowValue, e.ColumnValue, 'ROUND'); 
}); 
+0

已經嘗試過..沒有工作,。顯示未定義的事件。 – Umesh251 2012-02-17 08:26:49

+0

e未定義// – Umesh251 2012-02-17 08:45:55