javascript - 单击按钮后Javascript取消SetTimeout
问题描述
有一个确定按钮和一个取消按钮
下面的代码将执行此操作:
打开对话框输入后,10 秒后自动单击取消按钮。
if(SceneManager._scene instanceof Scene_InputDialog) {
setTimeout(function () {document.getElementById("inputDialog-CancelBtn").click();}, 10000);
}
如果我在这 10 秒内单击确定按钮,我将在下面收到此错误。(因为 10 秒后,它将尝试自动单击不再存在的取消按钮;如果单击确定按钮,取消按钮将消失)
未捕获的类型错误:无法读取 null 的属性“点击”
如果单击 Ok 按钮,我应该如何清除 SetTimeout?提前感谢您的帮助
如果我需要添加对 OK 按钮处理程序的引用,我应该如何添加它。下面是我的其他代码。
okButton.addEventListener('click', function (e) { okFunc(); e.preventDefault(); }, false); cancelButton.addEventListener('click', function (e) { cancelFunc(); e.preventDefault(); }, false); okButton.addEventListener('touchend', function (e) { okFunc(); e.preventDefault(); }, false); cancelButton.addEventListener('touchend', function (e) { cancelFunc(); e.preventDefault(); }, false);
this._okFunc = okFunc; this._cancelFunc = cancelFunc; };
解决方案
const myTimeout;
if(SceneManager._scene instanceof Scene_InputDialog) {
myTimeout = setTimeout(function () {
document.getElementById("inputDialog-CancelBtn").click();
}, 10000);
}
然后你可以取消它:
clearTimeout(myTimeout)
推荐阅读
- tsql - 如何使用从表 B 和表 C 的连接返回的按日期计数来更新表 A 中的按日期计数
- python-3.x - 获取 2 个列表的组合
- python - 有人可以解释一下这个词频数吗?
- php - 如何使用整数数组重新映射我的数组键?
- python - 求函数 Python
- javascript - 我应该有一个更新所有精灵的事件侦听器,还是每个精灵都有自己的事件侦听器?
- java - 更换纺织品中的一条线,留下 oldLine 的残留物
- list - Haskell 旋转列表列表
- ios - 如何同时检测两组不同的 ibeacon UUID?
- firebase - Firebase Firstore 子集合