jQuery FadeOut On Page Reload

时间:2012-07-23 14:02:30

标签: javascript jquery fadein fadeout

我想知道是否有人可以帮助我。

下面的脚本摘录使用户能够从表中删除链接到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);

然而这不起作用,我不知道为什么。我只是想知道某人可以在哪里看看这个,让我知道我哪里出错了。

非常感谢和亲切的问候

3 个答案:

答案 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。我现在已经将它移到我的脚本开头的表单之前,它工作正常。亲切的问候

相关问题