ProtoViewLogic: addActiveEvents()
メソッド relateElements()
によって ProtoViewLogic
に関連付けられた HTML 要素に対して、指定した種別のイベント通知を有効にします。
構文
protoViewLogic.addActiveEvents(targetElementName, eventType) => Array<string>
protoViewLogic.addActiveEvents(targetElementName, eventType1, eventType2, ...) => Array<string>
protoViewLogic.addActiveEvents(targetElementName, "eventType1, eventType2, ...") => Array<string>
引数
-
targetElementName
:string
イベント通知を有効にする要素名です。
-
eventsToBeActivated
:...string
有効にするイベント種別です。
返値: Array<string>
有効になったイベント種別です。
例外
ReferenceError
- 引数
targetElementName
で指定された名前のプロパティを持っていなかった場合。
- 引数
TypeError
- 引数
targetElementName
で指定されたプロパティがrelateElements()
によって関連付けられたElement
でなかった場合。 - 引数
evevntsToBeActivated
に文字列以外の値が含まれる場合。
- 引数
解説
引数 eventsToBeActivated
で指定されたイベント種別について、既に有効なイベント種別を除き、ProtoViewLogic
へのイベント通知を行うイベントリスナーを登録します。
イベントリスナーはイベント発生時、要素の所有者 elementOwner: ProtoViewLogic
に対して以下を実行します:
elementOwner.post(elementOwner.message(id, eventType, { event: event }))
ここで id はその要素に対するプロパティ名、eventType はイベントの種別、event はイベントリスナーが受け取ったイベントオブジェクトです。
イベントリスナーは、捕捉したイベントに対して stopPropagation()
を呼び出し、DOM ツリー上の伝播を抑制します。したがって、関連付けられた ProtoViewLogic
やその祖先がイベント通知に対して何も行わなかったなら、そのイベントは単に無視されます。
イベントリスナー登録後、対象の要素のカスタムデータ属性 data-active-events
に登録されたイベント種別を追加します。