我试图制作一个自定义弹出消息,显示,向用户显示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结束间隔. (您无法按功能清除间隔,仅通过间隔句柄清除)