同一函数中的setInterval和clearInterval

Tho*_*ggi 3 javascript jquery

我有这个message();功能:

function message(kind, text){   
    if(fadeOutDelay != undefined){
       clearInterval(fadeOutDelay);
    }
    $("#message").show();
    $("#message").attr('class',kind);
    $('#message').text(text);
    var fadeOutDelay = setInterval(function(){
        $("#message").fadeOut(2000);
    },10000);
}
Run Code Online (Sandbox Code Playgroud)

问题是我正在尝试清除重新运行该功能的时间间隔,以防止最新消息的淡入淡出.我希望能够继续发出消息,如果它们彼此间隔10秒,则不会发生淡入淡出.基本上,如果setInterval在运行此功能时发生,我想取消它.

pim*_*vdb 7

fadeOutDelay不在其他函数调用的范围内.您可以使用全局变量:

var fadeOutDelay;
function message(kind, text){   
    if(fadeOutDelay != undefined){
       clearInterval(fadeOutDelay);
    }
    $("#message").show();
    $("#message").attr('class',kind);
    $('#message').text(text);
    fadeOutDelay = setInterval(function(){
        $("#message").fadeOut(2000);
    },10000);
}
Run Code Online (Sandbox Code Playgroud)