
ボタンをクリックする度に連番で作成した関数を順番に実行したいのですが、スマートな書き方がわかりません。
下記のコードで一応動くのですが、関数が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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
functionから別のfunctionを実...
-
関数でy=g(x)のgとは何の略です...
-
クリックすると上に開くアコー...
-
【jQuery】時限式のポップアップ
-
idを使わずにonclickで自身の要...
-
同じ型【ハイフンと数字】だけ...
-
jspからjavascriptの変数引継ぎ
-
C#OpenCv V4にのエラーに関する...
-
同じIDで定義した要素の配列を...
-
ActiveXobjectが作成できない
-
VB6における事前バインディング...
-
MFCのキャプション変更
-
C# 演算 分岐処理 繰り返し処理
-
javascript 初心者です 変数に...
-
コードを教えて下さい
-
for文を使って変数に値を入れる...
-
window.openでタイトル名の指定
-
JavaScriptで文字列の特定文字...
-
<a>タグのテキストを取得
-
static constメンバ変数(配列)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
functionから別のfunctionを実...
-
idを使わずにonclickで自身の要...
-
関数でy=g(x)のgとは何の略です...
-
クリックすると上に開くアコー...
-
Matlabで自作関数をオーバーロード
-
XMLHttpRequestでキャッシュを...
-
javascriptのenchantの打ちミス
-
ASP 最終日の表示
-
javascriptのレキシカルスコー...
-
jQueryでのレスポンシブが綺麗...
-
jQueryを利用したアコーディオ...
-
イベントハンドラの関数の引数...
-
getElementByIdを使用したグロ...
-
関数名をテキストから読み込む...
-
delphi6を使っています。
-
JavaScript 宣言 について
-
Ajaxでデータベース(PostgreSQL)
-
functionはhtmlやjsに2度使えま...
-
Javascriptの丸括弧の意味
-
JavaScript/jQuery で元画像フ...
おすすめ情報