siteメニューコンテンツへ移動ホーム紹介jquery.customEventTriggerコメントをどうぞdomの変化などをイベントとして定義できるjQueryプラグイン「jquery.customEventTrigger」っていうのを作りました。setIntervalで状態変化を監視して、変化したら任意のイベントをトリガーするというものです。他にやり方があるかもと思いつつも。jQueryプラグインでは、利便性のためにコールバック関数をフックできる仕組みにしたりしますが、フックポイントが不足していることがよくあります。いって、単機能のためにわざわざフックポイントを増やしたくない。そんな時に、本プラグインで独自のキッカケでトリガーするカスタムイベントを定義すればbindやliveやoneで処理できるという訳です。opacityが1になると発生するイベントを作ってfadeInのコールバック代わりに使ったり、あるクラス名を取得すると発生するイベントを作ったり。jquery.customEventTriggerはカプセル化のためにsub方式を採用してるので、$.customEventTrigger(selector).method()という使い方になります。下記のようにshowイベントを定義しておくと、cssのdisplayがnoneから別の値に変わった瞬間にトリガーします。addGettingTrueEventメソッドは条件がfalseからtrueに遷移するのを捉えるのです。'none');});下記のように使います。{});下記のようにresizeXイベントを定義しておくと、Widthが変化した瞬間にトリガーします。addChangeEventメソッドは値の変化を捉えます。obj.get(0).clientWidth;});下記のように使います。{});もう少し複雑な例。addメソッドは汎用のジェネレータで、上記の2つのメソッドのバックエンドでもあります。第2引数の関数の戻り値を前回の値と比較して変化を捉えますが、比較の仕方を第3引数で指定できます。trueだったらトリガーします。});下記のように使います。値を検出するロジックを関数で指定します。関数は引数としてjQueryオブジェクトを受け取ります。この戻り値がfalseからtrueに変わるとeventNameイベントがトリガーされます。内部でsetIntervalに渡される実行間隔をmsで指定します。値を検出するロジックを関数で指定します。関数は引数としてjQueryオブジェクトを受け取ります。この戻り値が前回から変化するとeventNameイベントがトリガーされます。内部でsetIntervalに渡される実行間隔をmsで指定します。値を検出するロジックを関数で指定します。関数は引数としてjQueryオブジェクト受け取ります。この戻り値はcompareメソッドの引数として渡されます。前回の値と今回の値を比較するロジックを指定します。関数は引数として前回の値と今回の値を受け取ります。この戻り値がtrueのときeventNameイベントがトリガーされます。内部でsetIntervalに渡される実行間隔をmsで指定します。コメントをキャンセルメールアドレスが公開されることはありません。