উপরের নির্বাচিত উত্তরটি কাজ করে না।
কারণ টাইপিং টাইমারটি একাধিকবার সেট করা হয় (কীডাউন দ্রুত টাইপার ইত্যাদির জন্য ট্রিগার হওয়ার আগে দুবার কীপ চাপ দেওয়া হয়) তবে এটি সঠিকভাবে পরিষ্কার হয় না।
নীচের সমাধানটি এই সমস্যার সমাধান করে এবং ওপি এর অনুরোধটি শেষ হওয়ার পরে এক্স সেকেন্ড কল করবে। এটির জন্য এখন আর রিডানডেন্ট কীডাউন ফাংশনের প্রয়োজন নেই। আমি একটি চেকও যুক্ত করেছি যাতে আপনার ইনপুটটি খালি থাকলে আপনার ফাংশন কলটি না ঘটে।
//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
}
এই সমাধানটি ES6 ব্যবহার করে তবে এটি এখানে প্রয়োজনীয় নয়। শুধু প্রতিস্থাপন let
সঙ্গে var
নিয়মিত ফাংশন তীর ফাংশন এবং।