注意:超时关闭时不执行回调

Posted

技术标签:

【中文标题】注意:超时关闭时不执行回调【英文标题】:Noty: Do not execute callback when closed by timeout 【发布时间】:2018-04-30 09:18:00 【问题描述】:

我正在使用Noty 向用户显示消息。单击通知时,用户将被重定向到显示有关通知的更多详细信息的页面。为此,我使用了onClose() 回调。

我还想在短时间内隐藏通知。我正在为此使用timeout 属性。

问题在于,即使通知因超时而关闭,onClose() 回调也会被执行。但是由于没有onClick() 或类似的回调可用,我相信使用当前的方法是我能做的最好的。

有人知道解决此问题的方法或某种解决方法吗?任何帮助表示赞赏!

【问题讨论】:

【参考方案1】:

在Noty v2 中看起来他们有一个可以使用的新onCloseClick 回调。似乎只有当用户单击通知关闭它时才会调用它。在超时时它仍然会关闭通知而不触发回调。

这是一个例子:

noty(
  text: 'Alert: I am an error!',
  timeout: 3000,
  progressBar: true,
  callback:
   onCloseClick: function() 
     console.log("you closed with a click");
     // redirect user here
   
  
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/noty@2.4.1/js/noty/packaged/jquery.noty.packaged.min.js"></script>

【讨论】:

以上是关于注意:超时关闭时不执行回调的主要内容,如果未能解决你的问题,请参考以下文章

如何使用php、html及消息队列实现订单超时自动关闭订单

为啥数据库或语言平台在执行查询时不返回强类型类? [关闭]

Bug解决了axios.get('...').then(),回调不执行的Bug

如果在超时回调中修改了“window.location.href”,则 shouldOverrideUrlLoading(...) 不会执行

Layer怎么让按钮的回调方法执行完以后不自动关闭

怎么拿到layer的time自动关闭之后的回调函数