基于输入

时间:2017-06-19 18:48:03

标签: javascript html modal-dialog settimeout

我正在创建一个小部件来显示幻灯片上的信息。一旦用户与项目交互,就会出现PDF。我试图创建一个警报,如果显示器没有与之交互约15秒钟就会出现。我有完美的功能,但遇到问题...我有以下代码:

    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();
    }

如上所述," alertQuestion()"显示器闲置一点后,功能出现。警报模式包含两个问题"是"和"不"。按钮按预期工作。我有一个" setTimeout"方法设置一旦警报模式启动计时器并关闭所有内容并恢复幻灯片显示如果没有回复输入。但是,我遇到的问题是即使用户点击了#34;是",我也无法获得" resumeSlideshow"超时清除。我希望考虑输入,因此超时可以从0重新开始。到目前为止,用户可以点击"是"留下来阅读,但" resumeSlideshow"方法将继续并取消一切。任何修改和提示都会有所帮助。

1 个答案:

答案 0 :(得分:0)

您的变量不存在于函数的上下文之外。你需要把它移到外面

var resumeSlideshow;
function alertQuestion(){
  alertModal.style.display = "block";
  resumeSlideshow = setTimeout(closeAndPlaySlideshow,8000);
}