hifive / hifivemain

main repository
http://www.htmlhifive.com/
Other
40 stars 10 forks source link

イベントハンドラにイベント処理中の要素を操作するためのショートカット引数を追加 #184

Closed simdy closed 11 years ago

simdy commented 11 years ago

通常イベントハンドラを(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]を参照すればよい)。

simdy commented 11 years ago

第2引数の形式は h5.settings.listenerElementType で指定可能。 デフォルトではjQueryオブジェクト化して渡すようになっている。