You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Toastr如何让onHidden回调仅在success类型消息隐藏时触发?

toastr 仅成功提示框触发onHidden回调的实现方法

toastr 没有提供仅针对特定类型提示设置全局回调的原生配置项,可通过以下三种方案实现需求:

  • 方案1:调用success时单独传入回调(最常用)
    首先删除全局配置中的onHidden项,避免所有类型提示都触发该回调,修改后的全局配置如下:
toastr.options = {
  "closeButton": true,
  "newestOnTop": true,
  "progressBar": true,
  "positionClass": "toast-bottom-right",
  "preventDuplicates": true,
  "showDuration": 400,
  "hideDuration": 400,
  timeOut: 2500,
  "showEasing": "swing",
  "hideEasing": "linear",
  "showMethod": "fadeIn",
  "hideMethod": "fadeOut",
  "newestOnTop": true
}

之后调用toastr.success时单独传入onHidden配置即可,其他类型(error、info、warning)的toast调用保持不变:

toastr.success('操作成功', '提示', {
  onHidden: function() { 
    console.log("HIDE") 
  }
})
  • 方案2:封装统一的成功提示方法(适合频繁调用成功提示的场景)
    如果需要多次调用成功提示,可以对toastr.success做一层简单封装,默认自带onHidden回调,无需每次调用都手动传参:
// 封装自定义成功提示方法
function customSuccessToast(message, title = '提示', options = {}) {
  const defaultOptions = {
    onHidden: function() { 
      console.log("HIDE") 
    }
  }
  // 合并配置,支持自定义参数覆盖默认值
  const finalOptions = Object.assign({}, defaultOptions, options)
  return toastr.success(message, title, finalOptions)
}

// 调用示例
customSuccessToast('操作成功')
  • 方案3:全局回调中增加类型判断(适合不想修改现有调用逻辑的场景)
    如果不想调整现有代码的调用方式,可以直接在全局的onHidden回调中增加类型判断,仅当触发回调的是成功提示时才执行对应逻辑:
toastr.options = {
  // 其余原有配置保持不变
  "onHidden": function() { 
    // 判断当前提示框是否为成功类型
    if (this.$ele.hasClass('toast-success')) {
      console.log("HIDE")
    }
  }
}

这里的this指向当前触发回调的toast实例,$ele属性对应提示框的DOM元素,通过判断是否包含toast-success类即可识别是否为成功提示。

内容的提问来源于stack exchange,提问作者Trombone0904

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:27:03