2013-04-25 26 views
0

我正在爲我在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,然後有人提到我,他們會收到一個自動回覆信息,然後如果有人在計時器中提到我,自動信息無法發送(不延遲,然後在延遲後發送)。我希望我能爲此得到正確的幫助,謝謝。

回答

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