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

how to refresh a page on select using jquery... after a few seconds?

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

我有一个带有 select 的下拉栏,它可以在带有 ajax 的页面上拉取结果...唯一的问题是它复制了拉入的结果。但是,如果加载结果后页面有一个硬刷新,这是我想用 jquery...

模拟的

基本上,我希望这样,只要用户加载 "selected",它就会加载页面的结果,并在一秒左右后硬刷新 window。

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

已编辑尝试 -

 <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>

非常感谢您的帮助。

要立即触发页面重新加载,您可以使用 window.location.reload(true). If you want this to happen after a delay, specify it as the callback to window.setTimeout():

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

其中 delay 是重新加载前等待的时间长度。注意这个函数是非阻塞的;它之后的代码将继续执行,直到计时器用完并且页面重新加载。

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

注意:这个问题回答了很多次。 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>