Top >
JavaScript > setTimeout()やsetInterval()で引数を渡す方法
setTimeout()やsetInterval()で引数を渡す方法
setTimeout()やsetInterval()で引数を渡す方法を紹介します。
1.問題点
setTimeout()やsetInterval()で変数paramの値を起動先の関数fooに渡したいので次のように記述しましたが、期待通りの動作になりません。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
function foo(message) {
alert(message);
}
$(function() {
var param = "Hello!!";
window.setTimeout(function(){foo(param)}, "1000");
});
</script>
コンソールでチェックすると「ReferenceError: param is not defined」というエラーになります。
2.setTimeout()やsetInterval()で引数を渡す
1項でエラーとなるのは、変数を文字列として扱っているためと思われます。
setTimeout()やsetInterval()で変数をパラメータとして渡したい場合、文字列結合させればOKとなります。
window.setTimeout("foo(" + param + ")", "3000");
または第1パラメータを無名関数に書き換えるという方法もあります。
window.setTimeout(function(){ foo(param) }, "3000");
3.その他
なお、下記のようにjQueryを介さない記述であればエラーとならないようです。
<script>
function foo(message) {
alert(message);
}
var param = "hello";
window.setTimeout("foo(param)", "3000");
</script>
Posted by yujiro このページの先頭に戻る
- 複数のsubmitボタンをonsubmitで判定する方法
- JavaScriptの時間を0パディングする方法
- JavaScriptでJSONデータを作る方法
- JavaScriptやjQueryで設定されたイベントの定義場所を調べる方法
- javascript:void(0)のまとめ
- JavaScriptのFormDataの使い方
- JavaScriptメールアドレスチェッカー
- PCのブラウザでiPhoneやAndroidのようなパスワードフォームを実現するJavaScriptライブラリ「FormTools」
- JavaScriptでフォーカスのあたっている要素を取得する「document.activeElement」
- 入力フォームの全角・半角を勝手に変換してくれるJavaScript
- JavaScriptエラーを表示・確認する方法のまとめ
- ソーシャルボタンのJavaScriptでfunctionの前に「!」がついている理由
- JavaScriptでCSSの擬似クラスを設定する方法
- JavaScriptの正規表現で文字列を抜き出す「グループ化」
- JavaScriptにおける引数や配列の要素数の制限について
トラックバックURL
コメントする
greeting