2

動作しない非常に単純な JS setInterval および clearInterval の例があります。それが機能しない根本的な理由があるはずです。その理由を知りたいです。

 var automessage;

 function turnON() //executed by onclick event A
 {
   var automessage = setInterval(function(){ something() }, 2000);
 }

 function turnOff() //executed by onclick event B
 {
   clearInterval(automessage);
 }

 function something()
 {
   //pulls instant messages
 }

この例では、エンド ユーザーがボタンをクリックして時間間隔プロセスを開始し、別のボタンをクリックして時間間隔プロセスを停止し、オン ボタンをもう一度クリックしてプロセスを再開します。基本的に、それはオン/オフ スタイルのプロセスです。

これは機能せず、その理由を理解しようとしています。Stackoverflow で提供されている他の何百もの例をすべて機能させることができますが、オンとオフだけに限定されないオン/オフ スタイルのプロセスが本当に必要です。setInterval は、いつでもオンとオフを切り替えられる必要があります。

誰の助けにも本当に感謝しています。また、Jquery ライブラリは使用しません。

4

3 に答える 3

8

automessageグローバル変数とローカル変数として 2 回宣言されています。試す:

function turnON() //executed by onclick event A
{
    automessage = setInterval(function(){ something() }, 2000);
}
于 2013-09-23T10:42:05.903 に答える
1

変化する

var automessage = setInterval(function(){ something() }, 2000);

automessage = setInterval(function(){ something() }, 2000);

順番にON()

于 2013-09-23T10:44:37.960 に答える