在设定的时间段内创建功能阻止程序

时间:2013-04-25 20:03:40

标签: javascript function timer block clearinterval

我正在为我在plug.dj上运行的房间制作自定义脚本,并且我已经为AFK,工作和睡眠实现了自动消息警报。因此,如果您将状态设置为AFK并且有人提及您,则会收到与AFK状态相关的自动消息。这是代码:

function autoRespond(data) {
var a = data.type == "mention" && Models.room.data.staff[data.fromID] && Models.room.data.staff[data.fromID] >= Models.user.BOUNCER, b = data.message.indexOf('@') >0;
if (data.type == "mention") {
    if (Models.user.data.status == 1)
    API.sendChat("@" + data.from + " automsg: I'm currently AFK");
    if (Models.user.data.status ==2)
    API.sendChat("@" + data.from + "automsg: I'm currently working");
    if (Models.user.data.status ==3)
    API.sendChat("@" + data.from + " automsg: I'm currently sleeping");
    }

}

我想要做的是,如果有人在被设置为其中一种状态时被提及,我想在自动消息之前添加一个计时器,因为再次激活。说我已经设置为AFK,然后有人提到我,他们会收到一条自动回复消息,然后如果有人在定时器中提到我,则自动消息无法发送(没有延迟,然后在延迟后发送)。我希望我能得到正确的帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

您可以按如下方式使用setTimeout:

HTML:

<button id="button">message</button>
<div></div>

JavaScript:

$('#button').on('click', function(){
    sendMessage();   
}); 
var sended = false ;
function  sendMessage(){
    if( !sended ){
        $('div').html($('div').html() + '<br />new message');
        sended = true;
        wait( 2000 );
    }
}

function wait( miliseconds ){
     setTimeout(function(){
         sended = false;
     }, miliseconds)   
}

您可以看到此工作at jsfiddle