This question already has answers here:
how to make a setInterval stop after some time or after a number of actions?
                                
                                    (4个答案)
                                
                        
                                2年前关闭。
            
                    
我的网站上有一个特定的甜蜜警报,该警报用于以onclick打开的div类,但例如,我希望此onclick警报在60秒后停止。所以在60秒后,如果我单击div,警报将不会显示。

<script type="text/javascript">
function JSalert(){
    swal("Error", "You have to watch the video first.", "error");
}
</script>


<div class="blocked" onclick="JSalert()">

最佳答案

据我了解的问题(并基于警报中的翻译文本):


如果用户单击div,则发出警告
60秒(网络时间永恒(此处为5秒用于测试))之后,则当他们单击时不显示警报


(从操作菜单中:“ 60秒后,如果我单击div,警报将不会显示”,或者换句话说,“如果在60秒后单击div,警报将不会显示”)



var showalert = true;
setTimeout(function() { showalert = false; }, 5000);  /* 5s for testing */

function JSalert(){
  if (showalert) {
    alert("Please don't click too soon");
  }
}

<div class="blocked" onclick="JSalert()">click me, but not too soon</div>





可以使用data-属性/ jquery .data()对此进行改进,但是概念是相同的。

关于javascript - 如何在x秒后停止Javascript函数运行? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51766246/

10-12 04:45