我有一个引导警报被多次调用,所以我想编写一个函数来重用。我希望警报在 3 秒后消失并执行一些操作。所以在我的 setTimeout 中我想做类似
location.reload()
或 textbox.value=""
的事情。
我的代码:
const alerts = (msg, todo) => {
alert.classList.remove("d-none");
document.getElementById("msg").innerHTML = msg;
setTimeout(() => {
alert.classList.add("d-none");
todo;
}, 3000);
};
alerts("message1", location.reload());
alerts("message2", (textbox.value=""));
我的第二个论点是没有被调用。我要解决这个问题吗?
正如 Sergey 在评论中建议的那样,您可以使用 callback function 来实现您想要做的事情。
您在回调中提供的任何内容都将在
todo()
函数中调用 alerts
时执行。
示例:
const alerts = (msg, todo) => {
console.log(msg)
setTimeout(() => {
todo();
}, 3000);
};
alerts("message1", () => {
//location.reload()
console.log("message 1 callback")
});
alerts("message2", () => {
//textbox.value = ""
console.log("message 2 callback")
});