【问题标题】:Reload page after notify shows completely done通知显示完全完成后重新加载页面
【发布时间】:2020-12-20 13:17:09
【问题描述】:

这里有人如何修复我的通知?我想显示通知完全完成,然后重新加载页面。目前,我的通知快速退出并且没有完全显示。我正在使用 ajax 和 toastr。非常感谢你们!非常感谢您的帮助。这是我尝试过的:

function InsertOrUpdateExpense() {
    var data = $('#formExpenseTransaction').serialize();
    $.ajax({
        type : 'POST',
        url : url + 'InsertOrUpdateExpenseTransaction',
        data : data,
        dataType : 'json',
        beforeSend:function() {
            $('#btn-expense--transaction').html(' <i class="icon-spinner2 spinner"></i>').attr('disabled',true);
        },
        success:function(data) {
            data.success === true ? notify(data.type,data.message) : notify(data.type,data.message);
            var content = data.type == 'info' ? 'Save Changes' : 'Add Expense';
            $('#btn-expense--transaction').html(content +' <i class="icon-arrow-right14 position-right"></i>').attr('disabled',false);
            setTimeout(function() {
                location.reload();
            }, 3000);
        }
    });
}

function notify(type,message) {
    Command: toastr[type](message)
}

function toastr_option() {
    toastr.options = {
        "newestOnTop": true, "progressBar": false, "positionClass": "toast-top-right", "preventDuplicates": true, "showDuration": 300, "hideDuration": 1000, "timeOut": 5000, "extendedTimeOut": 1000, "showEasing": "swing", "hideEasing": "linear", "showMethod": "slideDown", "hideMethod": "slideUp"
    }
}

【问题讨论】:

    标签: javascript jquery ajax toastr


    【解决方案1】:

    只需将您的 location.reload() 从 setTimeout 内部移动到名为“onHidden”的 toastr 选项。

    function toastr_option() {
        toastr.options = {
            "newestOnTop": true, "progressBar": false, "positionClass": "toast-top-right", "preventDuplicates": true, "showDuration": 300, "hideDuration": 1000, "timeOut": 5000, "extendedTimeOut": 1000, "showEasing": "swing", "hideEasing": "linear", "showMethod": "slideDown", "hideMethod": "slideUp", onHidden: function(){. location.reload(); }
        }
    }
    

    【讨论】:

    • 是的,这个onHidden属性,会在通知被隐藏时执行。所以,过一会儿,页面就会刷新!
    【解决方案2】:

    我不知道 toastr,但是阅读 his documentation 你可以试试他的回调函数。

    在他的例子中:toastr.options.onHidden = function() { console.log('goodbye'); }

    类似这样的:

    function toastr_option() {
        toastr.options = {
            "newestOnTop": true, "progressBar": false, "positionClass": "toast-top-right", "preventDuplicates": true, "showDuration": 300, "hideDuration": 1000, "timeOut": 5000, "extendedTimeOut": 1000, "showEasing": "swing", "hideEasing": "linear", "showMethod": "slideDown", "hideMethod": "slideUp"
        }
        toastr.options.onHidden = function() { location.reload(); }
    }
    

    【讨论】:

      【解决方案3】:

      你可以这样做

      toastr.success(
                'Done',
                'Added Successfully',
              {
                timeOut: 1000,
                fadeOut: 1000,
                onHidden: function () {
                  window.location.reload();
               }
             });
      

      【讨论】:

        猜你喜欢
        • 2011-04-07
        • 1970-01-01
        • 2021-10-24
        • 2015-05-13
        • 1970-01-01
        • 1970-01-01
        • 2016-09-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多