Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Выполнение функции при паузе в наборе текста (https://javascript.ru/forum/jquery/18660-vypolnenie-funkcii-pri-pauze-v-nabore-teksta.html)

Kiomot 10.07.2011 15:39

Выполнение функции при паузе в наборе текста
 
Нужно сделать так, чтобы функция выполнялась только когда замечена пауза (2 секунды) в наборе текста в поле

Сейчас у меня функция срабатывает без замечания пауз
$('#my_input').keyup(function(){
    alert("Hello!");
});

Amphiluke 10.07.2011 15:53

<script type="text/javascript">
window.onload = function() {
    function foo() {
        alert("Don't stop typing!");
        t = setTimeout(arguments.callee, 2000);
    }
    var t = setTimeout(foo, 2000);
    document.getElementById("my_input").onkeyup = function() {
        if (t) clearTimeout(t);
        t = setTimeout(foo, 2000);
    }
}
</script>

<input type="text" id="my_input" />

trikadin 10.07.2011 16:02

<script>
function say() {
 alert("Печатай!");
};

run_id = false;

function wait_and_say() {
 run_id= setTimeout(say, 2000);
};

function cancel_say() {
 if (run_id) clearTimeout(run_id);
 run_id= false;
};
</script>
<input onkeyup="wait_and_say()" onkeydown="cancel_say()" />

melky 10.07.2011 16:06

эта же ситуация будет при keydown, а это событие раньше, чем keyup
run_id;

(function cancel_say() {
 clearTimeout(run_id);
})()


Часовой пояс GMT +3, время: 01:38.