ボタンをクリックする度に連番で作成した関数を順番に実行したいのですが、スマートな書き方がわかりません。
下記のコードで一応動くのですが、関数が100個とかに増えた場合すごくコードが長くなってしまいます。
もっとスマートに書く方法はないものでしょうか?
▼サンプルコード
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10 …
<script>
$(function(){
function s1(){alert('s1');};
function s2(){alert('s2');};
function s3(){alert('s3');};
var num = 1;
$('p').click(function() {
if(num == 1){s1();}
else if(num == 2){s2();}
else if(num == 3){s3();}
num++;
return false;
});
});
</script>
</head>
<body>
<p>click</p>
</body>
</html>
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ANo1です。
例えば、以下のようにすることで、呼び出す毎に順番に実行する関数を定義することも可能です。
var Func = (function(){
var i = 0. funcs = [
function(){ alert("s1"); },
function(){ alert("s2"); },
function(){ alert("s3"); }
];
return function(){
funcs[i]();
i = ++i % funcs.length;
}
})();
Func(); // s1
Func(); // s2
Func(); // s3
Func(); // s1
ご回答有り難うございます!
仰っている意味はわかりますが、書き方が初めて見るものでしたので、実際に試しながら勉強させて頂きます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
idを使わずにonclickで自身の要...
-
functionから別のfunctionを実...
-
関数でy=g(x)のgとは何の略です...
-
jslintのエラーについて質問
-
jQueryのプラグイン「Skitter」...
-
【JavaScript】二重送信防止
-
複数のプロパティを一行で書き...
-
setTimeoutでelementを渡す方法
-
LightBoxで
-
XMLHttpRequestオブジェクトが...
-
jQueryの導入について
-
javascriptで関数の削除は出来...
-
クリックすると上に開くアコー...
-
google apps scriptの終了のさせ方
-
JavaScript を使ってpkゲームを...
-
Linux バイナリ実行できない "...
-
C#テキストボックスの文字を配...
-
<a>タグのテキストを取得
-
C#OpenCv V4にのエラーに関する...
-
ActiveXobjectが作成できない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数でy=g(x)のgとは何の略です...
-
functionから別のfunctionを実...
-
idを使わずにonclickで自身の要...
-
jQueryの :not() .not() が有効...
-
jslintのエラーについて質問
-
クリックすると上に開くアコー...
-
要素名がスペースを含む場合のj...
-
javascript(jQuery)でセル内...
-
jQueryの"return false"の役割...
-
getElementByIdを使用したグロ...
-
ページ内に複数表がある場合のT...
-
JavascriptのFunctionの構文に...
-
これも関数ですか?
-
jqueryuiのdialog
-
XMLHttpRequestでキャッシュを...
-
javascript 別関数で生成したイ...
-
Javascriptの変数がうまく渡せ...
-
一つのアクションで関数を二つ...
-
無名関数を使うメリットは何で...
-
jQuery 同じ処理を関数にまとめ...
おすすめ情報