[英]How to check if two input fields are filled in and wait 2 seconds using jquery
[英]How to wait 2 seconds for input in Javascript
我正在使用javascript編程電視遙控器,如果用戶再按一次1(1通道或11通道或111通道),則需要按2號功能等待2秒。
我寫了這個函數,但它在循環中僅顯示11111111
,這是我的代碼:
function chChannel(pressed) {
setInterval(function () {
if (lengthCS < 3) {
inputChannel += pressed;
lengthCS = inputChannel.length;
}
}, 2000);
// call function to change channel using variable value inputChannel for ex. 011
};
有什么解決辦法嗎?
因此,函數需要等待2秒鍾,然后等待2秒鍾,它會在變量InputChannel中獲取按下數字的值,這樣我就可以調用函數以將Channel從Value InputChannel更改為數字。
聽按鍵並計數是一本有據可查的東西,但是,在實際主題的背景下,我想說,沒有正確的Waiting方法,除了將超時調用設置為可重復檢查的函數來結束腳本外,等待時間是否已經過去,如果沒有過去,則使用例如setTimeout進行自觸發。 100ms,如果是,則調用繼續主程序的函數。 然后,等待線程還可以檢查和計數按鍵,例如。 在全局變量中作為基本解決方案。
使用“ setTimeout”。
var Timer;
function chChannel(pressed) {
clearTimeout(Timer);
Timer = setTimeout(function () {
if (lengthCS < 3) {
inputChannel += pressed;
lengthCS = inputChannel.length;
}
}, 2000);
// call function to change channel using variable value inputChannel for ex. 011
};
您是否考慮過使用下划線的反跳功能之類的東西,會使事情變得更加簡單。
http://underscorejs.org/#debounce
可能是這樣的事情可能在電話上無法自己測試...
var inputChannel;
function chChannel(pressed) {
if (inputChannel <= 3) {
inputChannel += pressed;
}
else {
inputChannel = pressed;
}
_.debounce(someFunction, 2000);
};
只要在延遲時間內不斷調用防抖功能,它就不會執行,只會在延遲后執行一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.