javascript - 在 Popover 上杀死 setTimeout
问题描述
我有用于提交反馈/问题的弹出框。用户可以通过它提交反馈/问题。我有两种弹窗状态:
- 初始状态,显示文本框和提交按钮
- 成功状态,显示成功的大 fa-check-circle。
成功弹出框应在 5 秒内消失,因此我将 setTimeout 设置为 5000,这会破坏成功并将弹出框重新初始化为初始状态。
用户有可能点击触发控件返回隐藏成功状态。如果用户这样做,它应该隐藏/销毁成功状态并重新初始化弹出框。我处理了触发控制的点击事件,并使用下面的代码检查弹出框是否可见。
$('.questionIcon').data('bs.popover').tip().hasClass('in')
如果弹出窗口可见隐藏/销毁并将其重新初始化为初始状态。这里的问题是 setTimeout 可能仍然在 Success 弹出窗口上。如何让我的弹出框强制忽略超时执行我的代码?开始知道可以使用 clearTimeout 但如何使用 popover ?
解决方案
绑定setTimeout()
到一个变量并将其传递给clearTimeout()
您的弹出处理程序。
var myTimeout = window.setTimeout(function(){ doSomething(); },5000);
window.clearTimeout(myTimeout);
推荐阅读
- api - Docker 和 Kubernetes 内 API 的端点路径
- java - 如何获取按键的修改键码 - java
- elasticsearch - 如何在 Elasticsearch 中获取返回结果的最大日期值
- c# - 为什么我通过尝试读取 Excel 单元格的值得到空引用异常?
- javascript - $http.get 函数之外的 AngularJS 未定义值
- vuejs2 - 如何动态更改 Element UI 和 Vue 中的语言?
- mysql - 使用 LIMIT 时的 phpMyAdmin 挂起
- c# - 更改方法以使用 Tuple 返回两个字典
- javascript - 返回特定语句的正则表达式
- ios - iOS 12 企业应用程序在启动时崩溃