我想知道是否有人可以帮助我。
下面的脚本摘录使用户能够从表中删除链接到mySQL数据库的记录。
<script type="text/javascript">
$(document).ready(function(){
$('form.delete').submit(function(e){
e.preventDefault();
var elem = $(this).closest('.delete');
var lid = $(this).serialize();
$.confirm({
'title' : 'Delete Confirmation',
'message' : 'If you delete this Location, all associated Find records will also be deleted. <br /><br />They cannot be restored at a later time! Do you wish to continue?',
'buttons' : {
'Yes' : {
'class' : 'blue',
'action': function(){
//elem.slideUp();
$.ajax({
url: 'deletelocation.php',
type: 'POST',
data: lid,
success: function(response) {
console.log('success', response);
setTimeout(function() {
$('body').fadeOut(400, function(){
location.reload();
setTimeout(function(){
$('body').fadeIn(400);
}, 500);
window.scrollTo(x-coord, y-coord);
});
}, 2000);
},
error: function() {
console.log('error')
}
});
}
},
'No' : {
'class' : 'gray',
'action': function(){} // Nothing to do in this case. You can as well omit the action property.
}
}
});
});
})
</script>
我可以设法让“删除确认”消息正常工作并实际删除记录,但是我在添加'淡出'时有一点困难,因为删除发生了然后'淡入'在页面重新加载。
我已经阅读了很多帖子,从这些帖子中我想出了以下内容:
setTimeout(function() {
$('body').fadeOut(400, function(){
location.reload();
setTimeout(function(){
$('body').fadeIn(400);
}, 500);
window.scrollTo(x-coord, y-coord);
});
}, 2000);
然而这不起作用,我不知道为什么。我只是想知道某人可以在哪里看看这个,让我知道我哪里出错了。
非常感谢和亲切的问候
答案 0 :(得分:1)
location.reload()之后的脚本没有执行,因为页面正在重新加载。
您可以在网址(#reload)中添加一个标记,并且在页面加载开始时,您可以执行此操作 $('body')。hide()。fadeIn()如果你找到了旗帜。
答案 1 :(得分:1)
您无法在location.reload()之后设置javascript操作。
location.reload()将重新加载页面,并且在重新加载页面时遗留在JS堆栈中的任何内容都将丢失。
你需要将body fadeIn作为函数添加到页面本身,也许是否有特定的url参数?因此,不是重新加载页面,而是导航到同一页面,加上指定的查询字符串,例如?reload = true,或导航到特定的锚点,例如#myAnchor
答案 2 :(得分:1)
首先非常感谢你的帮助。然而,我已经意识到我的问题所在。我的页面的body
部分后面有JavaScript。我现在已经将它移到我的脚本开头的表单之前,它工作正常。亲切的问候