JQuery弹出消息

Sha*_*ogg 7 javascript jquery

我试图制作一个自定义弹出消息,显示,向用户显示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)

非常感谢

Cer*_*rus 8

试试这个:

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调用时声明它.