一直在为此苦苦挣扎,如果能在正确的方向上提供帮助或帮助,我将不胜感激...
我有一个带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>
非常感谢您的帮助。
答案 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>