我正在尝试制作一条自定义弹出消息,出现该消息,向用户显示5秒钟,然后淡出。如果使用多次触发事件,并且超时已在运行,则消息会快速消失,但效果很好。
到目前为止我的功能...
function showMessage(message) {
$(".messageText").text(message);
$(".message").fadeIn("slow");
closeBox = function(){
$(".message").fadeOut("slow");
}
clearInterval(closeBox);
setInterval(closeBox, 5000);
}
非常感谢
最佳答案
试试这个:
var interval;
function showMessage(message) {
$(".messageText").text(message);
$(".message").fadeIn("slow");
if(interval){ // If a interval is set.
clearInterval(interval);
}
interval = setInterval(closeBox, 5000);
}
function closeBox(){
$(".message").fadeOut("slow");
}
您需要将
setInterval
的返回值分配给一个变量。此句柄可用于以 clearinterval
结束间隔。 (不能通过函数清除区间,只能通过区间句柄)另外,我把
closeBox
函数从showMessage
函数中拉出来了,没必要每次调用showMessage
时都声明它。关于javascript - JQuery 弹出消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14155059/