2008年12月11日木曜日

setTimeoutで引数が入った関数を呼ぶ

たぶん常識なんですかね?
ものすごく詰まったので、記載。

setTimeOutで10秒後にホゲホゲを繰り返すみたいなことをやりたくて、
単純に

var str = "文字列"
setTimeOut("hogehoge(" + str + ")",100);

でやっていたところエラーでつまりました。

俺としては
hogehoge(文字列)
をやってるつもりだったのだけれど、

実際には
hogehoge([HTMLDivElement])
が実行されていて、できませんよと。

setTimeoutで呼び出した場合、
オブジェクトとして扱われるのでホゲホゲなんで、
なんだか難しい説明がありましたが動いたから良しとした。

setTimeOut("hogehoge('" + str + "')",100);


のように変数をシングルで囲ってあげなさいと言われました。

参考
JavaScriptのsetInterval()に引数ありの関数を渡す場合

文字のフェードイン・フェードアウト

0 件のコメント: