[JavaScript]猿でもわかるクロージャ超入門 6 クロージャの応用例「注文ボタン」
クロージャは何の役に立つのか?
前回の記事で、クロージャは「状態を保持する関数」であると書きました。これを応用すると、いろいろ便利なことができます。
jQueryとクロージャは相性バツグン
jQueryを使った経験があれば、誰でも下記のようなコードを書いたことがあるのではないでしょうか?$('#btn').click(function(){
alert('hello');
});
ここで、clickメソッドに渡されているのは無名関数function(){...}です。そう、無名関数と言えばクロージャの出番です!
クロージャの応用例:2回目にクリックすると警告が出るボタン
ショッピングカートの「注文する」ボタンで、2重クリックすると2回決済されてしまうというサイトをたまに見かけます。jQuery + クロージャを使うことで、これを防止してみましょう。
HTML
<form name="frm" id="frm">
<input type="submit" value="注文する" />
</form>
Javascript
$(function(){
var isClicked = false;
$('#frm').submit(function(){
if (isClicked) {
alert('すでにクリック済みです。');
return false;
}
isClicked = true;
});
});
デモ
↓2回クリックすると、2回目に警告が出ます。
クラスを作るより手軽なので、jQuery+クロージャの組み合わせはとってもおすすめです。
ぜひいろんな場面で使ってみてください!
これで、あなたはクロージャ入門を卒業しました。
最後まで読んでくれてありがとう。
おつかれさまですた。
カテゴリ:
jQuery
JavaScript