setTimeout機能していない、私はここで何かが足りないのですか?
-
20-09-2019 - |
質問
私はそのかなり基本を知っているが、私はちょうどそれが仕事を得ることができません。それは投げ続けて「期待オブジェクト」エラー...
$(document).ready(function(){
setTimeout('showMessage()', 1000);
function showMessage() {
alert('abc');
}
});
解決
SLaksが言ったように、
あなたは、それはない、それは期待していますオブジェクトとして、文字列として扱われますので、引用符であなたの関数をラップし、そうしている:
$(document).ready(function(){
setTimeout(showMessage, 1000);
function showMessage() {
alert('abc');
}
});
他のヒント
あなたはスコープの問題を持っている:。showMessage()
は匿名関数withingのみ表示されますが、setTimeout()
へのパラメータが評価取得すると、ランタイムがすでにスコープを残した。
setTimeout()
と悪を取り除くために、引数として直接関数を使用して[TM]の文字列の評価ます:
setTimeout(showMessage, 1000);
setTimeout
方法が最善の機能ではなく、文字列で使用されています。そのため、これを行うための最善の方法は、次のようになります:
$(document).ready(function() {
setTimeout(showMessage, 1000);
});
function showMessage() {
alert('abc');
}
問題がshowMessage機能がreadyイベント内で宣言されたsetTimeout(「showMessage()」、1000)は、グローバルスコープでそれを探すということです。あなたは、例えば、グローバルスコープにその宣言を移動することができますreadyイベントのうちの、またはSLaksは答える使用:のsetTimeout(showMessage、1000)。
所属していません StackOverflow