ऊपर चुना गया जवाब काम नहीं करता है।
क्योंकि टाइपिंग करने वाला समसामयिक कई बार सेट किया जाता है (कीपैड तेजी से टाइपर्स आदि के लिए ट्रिगर होने से पहले दो बार दबाया जाता है) तो यह ठीक से स्पष्ट नहीं होता है।
नीचे दिया गया समाधान इस समस्या को हल करता है और ओपी के अनुरोध के अनुसार समाप्त होने के बाद एक्स सेकंड कॉल करेगा। इसके लिए अब अतिरेक कीडाउन फ़ंक्शन की आवश्यकता नहीं है। मैंने एक चेक भी जोड़ा है ताकि यदि आपका इनपुट खाली हो तो आपका फ़ंक्शन कॉल नहीं होगा।
//setup before functions
var typingTimer; //timer identifier
var doneTypingInterval = 5000; //time in ms (5 seconds)
//on keyup, start the countdown
$('#myInput').keyup(function(){
clearTimeout(typingTimer);
if ($('#myInput').val()) {
typingTimer = setTimeout(doneTyping, doneTypingInterval);
}
});
//user is "finished typing," do something
function doneTyping () {
//do something
}
और वैनिला जावास्क्रिप्ट समाधान में एक ही कोड:
//setup before functions
let typingTimer; //timer identifier
let doneTypingInterval = 5000; //time in ms (5 seconds)
let myInput = document.getElementById('myInput');
//on keyup, start the countdown
myInput.addEventListener('keyup', () => {
clearTimeout(typingTimer);
if (myInput.value) {
typingTimer = setTimeout(doneTyping, doneTypingInterval);
}
});
//user is "finished typing," do something
function doneTyping () {
//do something
}
यह समाधान ईएस 6 का उपयोग करता है लेकिन यह यहां आवश्यक नहीं है। बस एक नियमित फ़ंक्शन के let
साथ var
और तीर फ़ंक्शन को बदलें ।