有一个确定按钮和一个取消按钮
下面的代码将执行此操作:
打开对话框输入后,在10秒钟后自动单击“取消”按钮。
if(SceneManager._scene instanceof Scene_InputDialog) {
setTimeout(function () {document.getElementById("inputDialog-CancelBtn").click();}, 10000);
}
如果在这10次点击中单击确定按钮,则会在下面显示此错误。(因为10秒钟后,它将尝试自动单击不再存在的取消按钮;如果单击确定按钮,则取消按钮将消失)
未捕获的类型错误:无法读取null的正确“点击”
如果单击“确定”按钮,应该如何清除SetTimeout? 预先感谢您的帮助
如果需要添加对“确定”按钮处理程序的引用,应如何添加它。 下面是我的其他代码。
okButton.addEventListener('click',函数(e){ okFunc(); e.preventDefault(); },错误); cancelButton.addEventListener('click',function(e){ cancelFunc(); e.preventDefault(); },错误); okButton.addEventListener('touchend',函数(e){ okFunc(); e.preventDefault(); },错误); cancelButton.addEventListener('touchend',函数(e){ cancelFunc(); e.preventDefault(); },错误);
this._okFunc = okFunc; this._cancelFunc = cancelFunc; };
答案 0 :(得分:1)
const myTimeout;
if(SceneManager._scene instanceof Scene_InputDialog) {
myTimeout = setTimeout(function () {
document.getElementById("inputDialog-CancelBtn").click();
}, 10000);
}
然后您可以通过以下方式取消它:
clearTimeout(myTimeout)
答案 1 :(得分:1)
您可以在document.getElementById("inputDialog-CancelBtn")
之前先检查.click()
是否不为空
if(SceneManager._scene instanceof Scene_InputDialog) {
setTimeout(function () {
const cancelBtn = document.getElementById("inputDialog-CancelBtn");
if(cancelBtn) {
cancelBtn.click()
}
}, 10000);
}
要清除超时,“确定”按钮的单击处理程序需要引用超时,因此只需进行空检查就更容易了