・基本的な考え方:DOM Level 3のサブセットとする。
・DOMイベントではないので、プロパゲーションに関係するプロパティなどは不要とする
・必要に応じてDOM Level 3に存在しないAPIを追加することは可とする
・利便性のため、dispatchEvent()は任意のオブジェクトを引数として受け取れることとする。
ただし、その場合、自動的に特定のプロパティを付加する。
付加するプロパティ:
- target (=== dispatchEventのthis)
- timeStamp (=== dispatchEvent呼び出し時の時刻(new Date().getTime()))
また、以下を行う:
- isDefaultPrevented()
- isImmediatePropagationStopped()
があるか、存在をチェックし、なければ、それぞれ
- preventDefault()(とisDefaultPrevented)
- stopImmediatePropagation()(とisImmediate~~)
を付加する。(付加するかどうかの判定は独立に行う。)
これは、jQuery Eventオブジェクトとの互換性対策、かつ内部的な制御機構との整合をとるため。
なお、ほとんどのケースは以下の2パターンと想定される:
①jQuery Eventが渡された場合⇒上記のisXxxは両方とも存在する(かつ、preventもstopもある)ので問題ない。
②ただのオブジェクトが渡された場合⇒isXxxとprevent,stopの4メソッドを全て追加するので、やはり問題ない。
isXxxがあるのにそれに対応するフラグセットのメソッドがない場合、
ユーザーが独自にフラグをセットする手段を持たせていると考え、prevent/stopの各メソッドは付加(&上書き)しないこととする。
・基本的な考え方:DOM Level 3のサブセットとする。
・DOMイベントではないので、プロパゲーションに関係するプロパティなどは不要とする
・必要に応じてDOM Level 3に存在しないAPIを追加することは可とする
・利便性のため、dispatchEvent()は任意のオブジェクトを引数として受け取れることとする。
ただし、その場合、自動的に特定のプロパティを付加する。
付加するプロパティ:
また、以下を行う:
があるか、存在をチェックし、なければ、それぞれ
を付加する。(付加するかどうかの判定は独立に行う。)
これは、jQuery Eventオブジェクトとの互換性対策、かつ内部的な制御機構との整合をとるため。
なお、ほとんどのケースは以下の2パターンと想定される:
①jQuery Eventが渡された場合⇒上記のisXxxは両方とも存在する(かつ、preventもstopもある)ので問題ない。
②ただのオブジェクトが渡された場合⇒isXxxとprevent,stopの4メソッドを全て追加するので、やはり問題ない。
isXxxがあるのにそれに対応するフラグセットのメソッドがない場合、
ユーザーが独自にフラグをセットする手段を持たせていると考え、prevent/stopの各メソッドは付加(&上書き)しないこととする。