No.132
【jQuery】一回だけ実行されるイベントを作る
一回反応したら消滅するイベントを作りたい
ゲームなど動きのあるものをJavascriptで作成しているとき、一回だけしか起動しないイベントを作りたいことがある。
例えばガチャガチャのプレイボタンとか、面クリア時の処理とか、いろいろ思いつくものはあるだろう。
そんなときに便利なのがjQueryのone
メソッド。
イベントを自動で削除してくれる便利なメソッドだ。
$('要素').one('イベント', function(e) {
処理
);
クリックイベントだと下記のような雰囲気になる。
$('#gotonextstage').one('click', function(e) {
alert('次のステージに進みます');
location.href='/stage2/';
);
one
メソッドは実質下記と等価と考えていい。
$('要素').on('イベント', function(e) {
処理
...
$(this).off(e);
);
on
メソッド同様、イベントは複数列記することができる。これも便利。
$('要素').one({
'イベント1': function(e) {
処理1
},
'イベント2': function(e) {
処理2
}
});