Closed simdy closed 11 years ago
通常イベントハンドラを(elem.addEventListener()で)追加すると、thisはそのハンドラを追加した要素そのものを指す。 一方、hifiveのコントローラのイベントハンドラではthisはコントローラインスタンスを指す。
ver.1.1.3までは、現在のイベント発生要素を操作したい場合は context.event.currentTarget(または.target)として要素を参照する必要があるが、 イベントハンドラではその対象要素を操作したい場合が多いので、 上記の場合の"this"に相当するショートカット引数を追加する。
context.event.currentTarget
.target
具体的には、イベントハンドラの第2引数にcontext.event.currentTargetをセットするようにする。 addEventListener()の場合のthisに相当するのは(targetではなく)currentTargetと考えるのが自然なので、currentTargetをセットする。
また、その際予めjQueryでくるんだ状態で渡すようにする(ユーザーがくるむ手間を省くため)。 くるむかどうかはsettingsで設定可能にする。
なお、この引数はインターセプタでも同様に参照可能(invocation.args[1]を参照すればよい)。
第2引数の形式は h5.settings.listenerElementType で指定可能。 デフォルトではjQueryオブジェクト化して渡すようになっている。
h5.settings.listenerElementType
通常イベントハンドラを(elem.addEventListener()で)追加すると、thisはそのハンドラを追加した要素そのものを指す。 一方、hifiveのコントローラのイベントハンドラではthisはコントローラインスタンスを指す。
ver.1.1.3までは、現在のイベント発生要素を操作したい場合は
context.event.currentTarget
(または.target
)として要素を参照する必要があるが、 イベントハンドラではその対象要素を操作したい場合が多いので、 上記の場合の"this"に相当するショートカット引数を追加する。具体的には、イベントハンドラの第2引数にcontext.event.currentTargetをセットするようにする。 addEventListener()の場合のthisに相当するのは(targetではなく)currentTargetと考えるのが自然なので、currentTargetをセットする。
また、その際予めjQueryでくるんだ状態で渡すようにする(ユーザーがくるむ手間を省くため)。 くるむかどうかはsettingsで設定可能にする。
なお、この引数はインターセプタでも同様に参照可能(invocation.args[1]を参照すればよい)。