Skip to content

EventDispacherの仕様の互換性・相互運用性向上 #302

@simdy

Description

@simdy

・基本的な考え方: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の各メソッドは付加(&上書き)しないこととする。

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions