执行功能后重新加载页面

时间:2017-07-25 06:43:53

标签: javascript jquery

我有一个简单的javascript代码,如下所示,我想在fadeOut和fadeIn fileds之后重新加载页面,但我不知道我应该在哪里放置window.location.reload();函数。你有什么建议吗 ?我是JavaScript的新手。

    <script>$(document).ready(function() {

        $('.updateButton').on('click', function() {
        var member_id = $(this).attr('member_id');
        var city = $('#city'+member_id).val();
        var continent = $('#continent'+member_id).val();
        var country = $('#country'+member_id).val();
        var id = $('#id'+member_id).val();

        req = $.ajax({
            url : '/deleteRequest',
            type : 'POST',
            data :
                {city : city,continent : continent,country : country,id : id}
        });
        req.done(function(data) {
            $('#city'+member_id).fadeOut(500).fadeIn(500);
            $('#continent'+member_id).fadeOut(500).fadeIn(500);
            $('#country'+member_id).fadeOut(500).fadeIn(500);
            $('#id'+member_id).fadeOut(500).fadeIn(500);
             });

    });
});
</script>

5 个答案:

答案 0 :(得分:1)

将其放入超时功能

  req.done(function(data) {
                    $('#city'+member_id).fadeOut(500).fadeIn(500);
                    $('#continent'+member_id).fadeOut(500).fadeIn(500);
                    $('#country'+member_id).fadeOut(500).fadeIn(500);
                    $('#id'+member_id).fadeOut(500).fadeIn(500);
                     setTimeout(function(){
                     window.location.reload();
                       },TotalTimeNeededbyThheAnimationInmiliseconds)
                     });

            });

答案 1 :(得分:1)

@IBAction func send(_ sender: UIButton) {


    let parentVC = (self.navigationController?.parent)! as! sendController

    parentVC.sendText.text = ""

    self.removeFromParentViewController()
    self.view.removeFromSuperview()

}

答案 2 :(得分:1)

以下是您可以查看并尝试的更新代码。我合并了所有元素,fadeIn有一个回调,您可以在其中刷新页面。因此,只有在fadeIn完成后才会重新加载页面:

$('#city' + member_id + ',#continent' + member_id + ', #country' + member_id + ', #id' + member_id).fadeOut(500).fadeIn(500, function() {
  location.reload();
});

答案 3 :(得分:1)

你应该试试

req.always(function(){
    window.location.reload();
});

无论你是否得到共鸣,它都会起作用。如果你想在回复时重新加载,你可以查看教程here

答案 4 :(得分:1)

在最新的jquery

弃用通知:

The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks will be deprecated in jQuery 1.8. To prepare your code for their
     

最终删除,使用jqXHR.done(),jqXHR.fail()和jqXHR.always()   代替。

     

使用.done().fail().always()代替success()error()和   complete()

我相信你只想在ajax成功时褪色和隐藏,所以你将它放在done()

如果你想在每次ajax完成时重新加载always()

例如:

req.always(function(){
   window.location.reload(false); 
// If we needed to pull the document from
//  the web-server again (such as where the document contents
//  change dynamically) we would pass the argument as 'true'.
});

如果你想在done()中同时使用它 那么

req.done(function(){
 // you fadein,fadeout code 

window.location.reload();
});