2012/10/16

[Titanium mobile]addEventListenerした無名関数(Anonymous function)をremoveEventListenerする方法

Titanium mobileでaddEventListenerする時に無名関数を利用した時のremoveEventListenerする方法。

通常は removeEventListener(イベント名, 関数名); で登録したイベントを解除出来るけど、無名関数の場合どうすんだと。

調べたらjavascriptの一般的な方法らしいんだけど、無名関数内で、関数名の代わりに「 arguments.callee 」を使用してremoveEventListenerするだけです。

addButton.addEventListener('click', function(e) {
 //何かの処理
 e.source.removeEventListener('click', arguments.callee);
 });
iOSもAndroidも問題なく動いてます。

ちなみにだけど、いままで無名関数ってよんできたけど、英語だと「Anonymous function」と呼ぶみたいですね。

0 件のコメント: