スライドショーの情報を表示するウィジェットを作成しています。ユーザーがアイテムとやり取りすると、PDFが表示されます。ディスプレイが約15秒間操作されていない場合に発生するアラートを作成しようとしています。私は完璧に働いた機能を持っていますが、問題に出くわす...私は、次のコードを持っている:述べたディスプレイは、少しのためにアイドル状態になった後、「alertQuestion()」機能が起動するとJavaScript setTimeout(入力ベース)
function alertQuestion(){
alertModal.style.display = "block";
var resumeSlideshow = setTimeout(closeAndPlaySlideshow,8000);
}
yesButton.onclick = function(){
alertModal.style.display = "none";
clearTimeout(resumeSlideshow);
setTimeout(alertQuestion,10000);
present = true
}
noButton.onclick = function(){
alertModal.style.display = "none";
modal.style.display = "none";
modal2.style.display = "none";
modal3.style.display = "none";
modalOpen = false;
clearTimeout(resumeSlideshow);
clearInterval(slideInterval);
playSlideshow();
}
を。警告モーダルには、「はい」と「いいえ」の2つの質問が含まれています。ボタンは必要に応じて機能します。私は "setTimeout"メソッドを設定すると、警告モーダルがタイマーを開始し、すべてを閉じ、応答が入力されていなければスライドショーを再開するようになります。しかし、私が抱えている問題は、ユーザーが「はい」をクリックしても、「resumeSlideshow」タイムアウトをクリアできないということです。私は入力を考慮しているので、タイムアウトは0から再び始めることができます。今のところ、ユーザーは "はい"をクリックして読んでも読み込めますが、 "resumeSlideshow"メソッドはすべてを実行して取り消します。変更やヒントがあれば助かります。
私の推測は範囲です。もしあなたが 'console.log(resumeSlideshow);'をyesbutton.onclickの中に入れば、私はそれが未定義であると確信しています。 setTimeoutをグローバルに接続するか、独自のイベントを使用する必要があります。 – mkaatman