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

私はイベントを追加する必要がありますが、動作させることはできません。クロムとIEで動作しますが、FFではありませんイベントが定義されていませんFF

alert-> for - >オブジェクトオブジェクト alert-> forイベント - >クロムとFFのオブジェクトMouseEvent - >何も表示されず、コンソールにイベントが定義されていません。

答えて

1

は、eventがあるグローバル変数(windowのプロパティ)でありますJavaScriptイベントが発生する前に設定します。これはChromeがIE用に設計されたサイトにやさしくするためにエミュレートする非標準的な動作です。 Firefoxはこの非標準的な動作をエミュレートしません。

standard behavioreventオブジェクトが引数としてイベントハンドラに渡されるということです。あなたは、あなたが使用している中間層(あなたが言っていない、私はすぐにそれを認識していない)でその引数を見つける必要があります、そして代わりにそれを使用してください。 (?おそらくそれは、関数の引数eそれともeオブジェクトのいくつかのプロパティやs引数またはそれのいくつかのプロパティですか?)

はまたsrcElementがIEに特異的であることに注意してください。 srcElementまたはtarget(やはりstandard form)のいずれかをチェックすることをお勧めします。

は、(あなたは私がここにマイクロソフトバッシングと思うなかれ:IEの非標準的なフォーム、実際に標準的なもの  —などを先行し、彼らが最初に古いDOM0のものから上に移動するものだ。しかし、それは持っているでしょう。スタンダードの最初の10年以内にスタンダードフォームをサポートしてくれればうれしいです。)

0
event.srcElement 

これが理由です。 IEとChromeはsrcElementを使用し、Firefoxはtargetを使用します。さらに、Firefoxはevent引数を渡すことを期待しているので、コードでは未定義です。

あなたはこれを試みることができる(se引数がから来ることになっているところ、私はわからないんですが):

IEで
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

+0

eは未定義です// – Umesh251

関連する問題