2

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

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

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

非常感谢和亲切的问候

4

3 回答 3

1

首先非常感谢您的帮助。然而,我已经意识到我的问题出在哪里。body我在页面部分之后有 JavaScript 。我现在已经把它移到了表单之前的脚本开头,它工作正常。亲切的问候

于 2012-07-23T14:28:39.303 回答
1

location.reload() 之后的脚本没有执行,因为页面正在重新加载。

您可以在您的 url (#reload) 中添加一个标志,并且在页面加载开始时,如果找到该标志,您可以执行 $('body').hide().fadeIn() 。

于 2012-07-23T14:12:16.520 回答
1

您不能在 location.reload() 之后设置 javascript 操作。

location.reload() 将重新加载页面,并且在重新加载页面时留在 JS 堆栈中的任何内容都将丢失。

您可能需要将 body fadeIn 作为函数添加到页面本身,也许如果有特定的 url 参数?因此,您无需重新加载页面,而是导航到同一页面,加上指定的查询字符串,例如 ?reload=true,或特定的锚点,例如 #myAnchor

于 2012-07-23T14:16:28.513 回答