我试图制作一个自定义弹出消息,显示,向用户显示5秒钟然后淡出.这工作正常但是如果使用多次触发事件并且超时已经运行,则消息很快消失.
我的功能到目前为止......
function showMessage(message) {
$(".messageText").text(message);
$(".message").fadeIn("slow");
closeBox = function(){
$(".message").fadeOut("slow");
}
clearInterval(closeBox);
setInterval(closeBox, 5000);
}
Run Code Online (Sandbox Code Playgroud)
非常感谢
试试这个:
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");
}
Run Code Online (Sandbox Code Playgroud)
您需要将返回值分配给setInterval变量.此句柄可用于结束间隔clearinterval.(您无法按功能清除间隔,仅通过间隔句柄清除)
另外,我将closeBox函数拉出showMessage函数,没有必要在每次showMessage调用时声明它.
| 归档时间: |
|
| 查看次数: |
2281 次 |
| 最近记录: |