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 に登録されたイベント種別を追加します。