Javascript 页面重新加载后的jQuery fadeIn div
我有一个表单,它通过ajax调用存储用户数据 在成功时,我通常会有一个div淡入,并显示一条成功消息。但是,我希望重新加载页面,以便更新页面,然后在成功消息中淡出 我使用了一个.load()来更新div,然后切换表单以隐藏自身等等。但是.load导致其他一些js脚本在调用etc后无法工作,所以现在我只需要重新加载页面 但是,我想在重新加载页面后显示成功消息div 这是一个例子:Javascript 页面重新加载后的jQuery fadeIn div,javascript,php,jquery,ajax,json,Javascript,Php,Jquery,Ajax,Json,我有一个表单,它通过ajax调用存储用户数据 在成功时,我通常会有一个div淡入,并显示一条成功消息。但是,我希望重新加载页面,以便更新页面,然后在成功消息中淡出 我使用了一个.load()来更新div,然后切换表单以隐藏自身等等。但是.load导致其他一些js脚本在调用etc后无法工作,所以现在我只需要重新加载页面 但是,我想在重新加载页面后显示成功消息div 这是一个例子: if (check) { $.ajax({ type: "POST", url: "p
if (check) {
$.ajax({
type: "POST",
url: "process/updateuserpref.php",
data: $('.updatepref').serialize(),
dataType: "json",
success: function(response){
if (response.updatePrefSuccess) {
location.reload();
$('#successdisplay').fadeIn(1000);
$('#successdisplay').delay(2500).fadeOut(400);
}
}
});
}
很明显,我知道
$('#successdisplay').fadeIn(1000);
$('#successdisplay').delay(2500).fadeOut(400);
目前不起作用,但有没有关于如何做我想做的事情的帮助
谢谢,Craig。您可以在重新加载时发送一个
GET
变量,然后检查GET变量是否存在显示成功消息。如果不存在,则不执行任何操作
我做同样的事情,所以我是这样做的:
加载reload()
I执行以下操作:
window.location.href=document.location.protocol+“/”+document.location.hostname+document.location.pathname+”?成功=1'
然后在我的PHP脚本中执行条件输出:
<?php if( $isset( $_GET['success'] ) && $_GET[ 'success' ] == 1 ) { ?>
<div id="successdisplay">
Changes performed Successfully
</div>
<?php }?>
已成功执行更改
一旦您执行了location.reload()你完蛋了。您可能处于无休止的重新加载循环中,或者如果上面的代码是由事件触发的,则所有代码都将丢失,并且今天不会褪色。请对您的其他js脚本使用事件委派,或者在加载AJAX内容后重新初始化它们。这将是学习异步代码的有用练习。问题很可能是那些绑定到更新HTML时不再存在的元素的脚本。@adeneo是的,我建议不要使用window.location.reload()
,而是将位置更改为类似的查询字符串参数,以指定需要发生的事情(如元素淡入淡出)@jasper感谢您的回复,那么在使用load函数时,其他脚本可能会受到影响,这是一种常见的情况吗?我很想使用。加载,但这一直让我拖延。我研究了事件委托和异步代码:)问题并不是真的与load()有关,而是您正在替换部分DOM,插入新元素,并且事件处理程序仅附加到绑定事件处理程序时存在的元素。这看起来是一种有趣的方法。我明天上午去看一看,然后试一试。