Blog
リファレンス(仕様詳細) » 特別なイベント(バブリングしないイベント)へのイベントハンドラの設定

特別なイベント(バブリングしないイベント)へのイベントハンドラの設定

Last modified by masaru-yokoyama on 2013/07/16, 15:18

hifiveでは、イベントハンドラを紐付ける際に、(要素に直接addEventListenerするのではなく)
コントローラをバインドした要素にハンドラをaddし、
バブリングしてきた要素とセレクタをマッチングさせ処理を行うかどうかの判断をしています。

(内部的にはjQuery.live, jQuery.delegateを使用しています。)

これは、ハンドラの管理を容易にし、パフォーマンスを最適化するために行われています。

(イベントのバブリングについては「イベント バブリング」などのキーワードで検索してください。)

しかし、scrollresizeなど一部のイベントはバブリングしません。
そこでhifiveでは、バブリングしないイベントのためにハンドラを要素に直接バインドする手段を用意しています。
やり方は簡単です。鍵括弧で囲むだけです。

'{window} [scroll]': function(context, $el) {}  

こうすると、windowオブジェクトでscrollイベントが発生した場合にハンドラを動作させることができます。


Copyright (C) 2012-2017 NS Solutions Corporation, All Rights Reserved.