当引导模态已经打开时,如何防止用jQuery进行div刷新?

时间:2019-09-17 08:49:38

标签: jquery html modal-dialog

我每30秒钟刷新一次div,刷新的div内有一个引导程序模式框。如果该模式被单击并打开,则当div刷新时,模式将消失,整个页面不可点击。我正在尝试找到解决方案。

我希望在模式框打开时防止div刷新。有任何想法吗? 谢谢

<div class="modal fade" id="alertModal" tabindex="-1" role="dialog" aria-labelledby="alertModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header bg-info text-white">
        <h5 class="modal-title" id="alertModalLabel">Modal Title</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
      </div>
      <div class="modal-body">
        some content
      </div>
    </div>
  </div>
</div>
$(document).ready(function() {
  setInterval(function() {
    $('#mainc').fadeOut('slow').load('index.php #mainc').fadeIn('slow');
  }, 30000);
});

1 个答案:

答案 0 :(得分:0)

这是解决此问题的有效方法:

function setLoad() {$('#mainc').fadeOut('slow').load('index.php #mainc').fadeIn('slow');}
setInterval(setLoad,'10000');
$(document).on('hidden.bs.modal','.modal',function(){setInterval(setLoad,'10000');});
$(document).on('shown.bs.modal','.modal',function(){for(var i=1;i<10000;i++){clearInterval(i);}});

由于hidden.bs.modal使用随机ID运行setInterval(),因此在不知道ID的情况下无法使用clearInterval()。 另外,请确保将js代码放在“ .modal” div上方,这样效果更好。