几秒钟后,如何在使用jquery的select上刷新页面?

时间:2018-12-07 17:47:39

标签: jquery select reload

一直在为此苦苦挣扎,如果能在正确的方向上提供帮助或帮助,我将不胜感激...

我有一个带select的下拉栏,使用ajax可以在页面上提取结果...唯一的麻烦是它复制了要提取的结果。但是,如果页面在结果被刷新后进行了HARD刷新,则可以解决此问题。已加载,这就是我想用jquery模仿的东西...

基本上,我希望这样,以便用户每次加载“ selected”时,它都会加载页面结果,并在大约一秒钟后硬刷新窗口。

这是我尝试使用的代码,但是它不起作用:

编辑尝试-

 <script type="text/javascript">
 jQuery(document).ready(function($) { 

   $('.filter').change(function(){
 setTimeout(function(){
  location.reload(true);
 },5000); // here 5000 is the delay of 5s
 });
 });                    
</script>

有什么好心的人可以引导我朝正确的方向前进吗?

select标记的下拉列表的html如下所示:

<select class="filter">
<option value="#">-- All --</option>
<option id="select-denver" value="denver" 
selected="selected">Denver</option>
<option id="select-laramie-wyoming" value="laramie-wyoming">Laramie, 
Wyoming</option>
</select>

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

要立即触发页面重新加载,请使用window.location.reload(true)。如果您希望在延迟后发生这种情况,请将其指定为window.setTimeout()的回调:

window.setTimeout(() => window.location.reload(true), delay);

delay是重新加载之前要等待的时间。注意此功能是非阻塞的;之后的代码将继续执行,直到计时器用完并重新加载页面为止。

答案 1 :(得分:0)

您打开的范围未正确关闭。请先关闭它们。并尝试下面的代码段。

注意:这个问题已经回答了很多次。 Difference between setTimeout with and without quotes and parentheses

$(document).ready(function(){
  $('.filter').change(function(){
    setTimeout(function(){
      location.reload(true);
    },5000); // here 5000 is the delay of 5s
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select class="filter">
  <option value="#">-- All --</option>
  <option id="select-denver" value="denver" 
  selected="selected">Denver</option>
  <option id="select-laramie-wyoming" value="laramie-wyoming">Laramie, 
  Wyoming</option>
</select>