ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery_jquery での setInterval と setTimeout の使用に関する注意事項

jQuery_jquery での setInterval と setTimeout の使用に関する注意事項

WBOY
WBOYオリジナル
2016-05-16 18:01:431035ブラウズ

以前は、タイマーを直接

setInterval("fn()",2000);
を使用して作成していましたが、最近、jquery を使用してタイマーを作成すると、常に fn が表示されるという問題が発生しました。次のような既存のエラー メッセージ

$(function(){setInterval("fn()",2000);})
解決策は、引用符と括弧を削除し、最も独創的な方法を使用することです

$(function(){setInterval(fn,2000);})
もう 1 つの方法は、次のように jq の拡張機能を記述することです

コードをコピーします コードは次のとおりです:

$(function(){
$.extend({
fn:function() {
alert(" im fn!");
}
});

>
上記は全て書いてありますが問題ありません。しかし、パラメーターを渡す必要がある場合はどうすればよいでしょうか?

上記最初の書き方と同様に、

$(function(){setInterval(fn,2000);})
と書くと

$(function () {setInterval(fn(para),2000);})
がエラーを報告しました。こっちの方が古典的でバカっぽい。

現時点では、関数を組み込んで、

$(function(){setInterval(function(){fn(para)},2000);})
2 番目の方法の配信方法については、こちらの方が簡単なので、これ以上は説明しません。

記念としてブログに投稿してください。すべて基本的なものです。ここも初心者が間違いやすいところです!


//==========================

2 番目のタイプを追加しましょう。パラメータの受け渡しメソッド。

まずコードを見てください



コードをコピーします コードは次のとおりです: $( function(){
$start = 1;
$.extend({
a:function(t){
$index = t;
alert($index );
$start ;
}
});


このように書こうとする人もいるでしょう。その結果はどうなるでしょうか?結果はアラートになります。これは常に 1 であり、増加しません。ここで注意する必要があるのは、setInterval の最初のパラメーターです。これは二重引用符で囲まれたステートメントであり、内部の内容は変数として解釈されます。上記の書き方に従えば、

setInterval("$.a(1)",2000);
と同等になりますので、結果は分かります。もちろん正しい書き方は




コードをコピーします
コードは次のとおりです: $(function() { $start = 1; $.extend({
a:function(t){
$index = t;
alert($index);
$start;
}
});
setInterval("$.a($start)",
});今回は $start が変数として解釈されます。このステートメントは、function(){a(value)} ではなく、function(){a(variable)} と同等です。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。