有一个确定按钮和一个取消按钮
下面的代码将执行此操作:
打开对话框输入后,10秒后自动点击取消按钮。
if(SceneManager._scene instanceof Scene_InputDialog) {
setTimeout(function () {document.getElementById("inputDialog-CancelBtn").click();}, 10000);
}
如果我在这 10 秒内单击“确定”按钮,我将收到以下错误。(因为 10 秒后,它将尝试自动单击不再存在的“取消”按钮;如果单击“确定”按钮,则取消按钮将消失)
未捕获类型错误:无法读取 null 的属性“click”
如果单击“确定”按钮,我应该如何清除 SetTimeout? 预先感谢您的帮助
如果我需要添加对“确定”按钮处理程序的引用,我应该如何添加它。 下面是我的其他代码。
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; };
最佳答案
您可以在 .click()
之前检查 document.getElementById("inputDialog-CancelBtn")
是否不为 null
if(SceneManager._scene instanceof Scene_InputDialog) {
setTimeout(function () {
const cancelBtn = document.getElementById("inputDialog-CancelBtn");
if(cancelBtn) {
cancelBtn.click()
}
}, 10000);
}
要清除超时,“确定”按钮单击处理程序需要引用超时,只需进行空检查会更容易
关于单击按钮后 JavaScript 取消 SetTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53969965/