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

ページがリロードされるため、location.reload()の後のスクリプトは実行されません。

URL(#reload)にフラグを追加でき、ページの読み込みの開始時に、フラグが見つかった場合は$('body')。hide()。fadeIn()を実行できます。

于 2012-07-23T14:12:16.520 に答える
1

location.reload()の後に発生するようにjavascriptアクションを設定することはできません。

location.reload()はページをリロードし、リロードされたページの時点でJSスタックに残っているものはすべて失われます。

おそらく特定のURLパラメータがある場合は、ページ自体に関数として本文のfadeInを追加する必要がありますか?したがって、ページをリロードするのではなく、同じページに加えて、?reload = trueなどの指定されたクエリ文字列、または#myAnchorなどの特定のアンカーに移動します。

于 2012-07-23T14:16:28.513 に答える
1

まずはご協力ありがとうございました。しかし、私は自分の問題がどこにあるのかを理解しました。body私は自分のページのセクションの後にJavaScriptを持っていました。これをフォームの前のスクリプトの先頭に移動しましたが、正常に機能します。敬具

于 2012-07-23T14:28:39.303 に答える