每5秒后显示一次模态

时间:2018-02-26 07:43:20

标签: javascript

我希望我的模态在每5秒钟后显示为弹出窗口而不触发按钮,但我无法做到。 我使用了jquery函数show和setTimeout,但它只在第一次加载页面时起作用

这是我的jquery:

<script>
$(document).ready(function(){
   setTimeout(function(){
       $('#myModal').modal('show');
   }, 2000);
});
</script>

我的模态:

<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>

  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">

      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
          <p>Some text in the modal.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>

    </div>
  </div>

我想让它在每5秒后打开一次 请帮忙

4 个答案:

答案 0 :(得分:1)

使用setInterval5000,因为2000是2秒。

setInterval是“每N毫秒重复此功能”。 setTimeout是“在N毫秒后执行此函数”

setInterval(function () {
  console.log('Modal.show()');
}, 5000);

答案 1 :(得分:1)

试试这个

setInterval(function () {
   $('#myModal').modal('show');
}, 2000);

setInterval()方法将继续调用该函数,直到调用clearInterval()或窗口关闭。

答案 2 :(得分:1)

您可以尝试使用递归setTimeout代替setInterval,因为setTimeout时间表可以确保当前呼叫结束时的下一个呼叫。

递归setTimeout是比setInterval更灵活的方法。这样,下一个呼叫的安排可能会有所不同,具体取决于当前呼叫的结果:

$(document).ready(function(){
   setTimeout(function showModal() {
      $('#myModal').modal('show');
      setTimeout(showModal, 5000);
    }, 5000);
});

答案 3 :(得分:0)

尝试在setInterval中使用5000而不是2000,因为5000是5秒