no versions found for ApplicationFrameworkReferences / Components/View/ProtoViewLogic/protoviewlogic_addActiveEvents / en

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