次のコードは、Head First jQueryという本にあります。変数が定義されていない場合もあります。
function lightning_one(t) {
$("#lightning1").fadeIn(250).fadeOut(250);
setTimeout("lightning_one()", t);
}; // end lightning_one
この行で呼び出されます。
lightning_one(3000);
観察された挙動は、雷がフェードインおよびアウト回、3秒間待機し、もう一度とフェードアウトし、その後でとフェードアウトし続けることです。 Firebugはjavascriptエラーを表示しません。
私は何を見るのか理解しています。私は3秒間隔を維持しようとするだろうと思ったので、私は、この変更されました:私はページを更新すると、雷が一度にとフェードアウト
setTimeout("lightning_one(t)", t); // t is in the brackets
:これに
setTimeout("lightning_one()", t); // nothing in the brackets
を。 Firebugは変数tは未定義であると私に伝えます。
私の質問は、私の変更後に変数tが定義されていない場合、私はそれを変更する前にエラーなくどのようにコマンドを実行したのですか?それにはtという名前の変数があります。詳細
はあなたのコメントや答えを書いてみんなに感謝します。コードの変更は、後に提案してしまった場合、私はまだ該当する章を終えていない
lightning_one();
function lightning_one(){
$("#container #lightning1").fadeIn(250).fadeOut(250);
setTimeout("lightning_one()",4000);
};
ので、私にはわからない:記録のために、「終了」フォルダ内に、コードは次のようになり。先に述べたように、これは最高の本ではないかもしれません。しかし、それは私が買ったもので、jQueryの基礎を学んでいます。
実際に文字列を 'setTimeout'に渡しますか?その本を遠くに投げる。 – Bergi
私は同じ考えをしていた:私はこのように機能を呼び出すことは悪い習慣だと思った...本で教えるべきではない何か! – jahroy
私は自分自身で答えを見つけようとしていたときに、その効果について多くの言葉を見ました。引用符をつけずに関数を呼び出すことは私の失敗した努力の1つでした。私の質問の目的のために、私は正確な見積もりが行くための最善の方法だろうと思った。 –