Я использую это, чтобы вызвать функцию, как только паузу при наборе инициируется в текстовом поле:jQuery 2.1 | Функция триггера после задержки в текстовом поле
var keyTimer;
$("#TEXTAREA").on('keyup mouseup', function(){
if (keyTimer) {
clearTimeout(keyTimer);
}
keyTimer = setTimeout(function() {
doFunction(); // Not working, triggers only once (on focus).
}, 500);
});
doFunction() вызывает только при первой паузе KeyUp (на фокусе). Эта функция должна срабатывать при каждой паузе (500). Теперь мне нужно размыть TEXTAREA, а затем сфокусировать его снова, чтобы повторно активировать doFunction(), который бесполезен для меня. Любое решение очень ценится.
UPDATE:
Обновленный код:
var keyTimer;
$("#TEXAREA").on('keyup mouseup', function(){
if (keyTimer) {
clearTimeout(keyTimer);
}
keyTimer = setTimeout(function() {
doFunction(); // Formulates a string
$("#TEXAREA").trigger('change');
}, 500);
}).on('change', function(){
alert('test'); // This triggers at every keyup/mouseup delay (500)
// This section of code must work after delay (500), but it doesn't,
// it only works on Textarea blur, which is not what I want:
var txtarea = $(this);
var livecount = $("#myValue").val(); // Comes from doFunction()
if (livecount.length > 2800) {
txtarea.css('color','#C00'); // Change text color of textarea
} else if (livecount.length <= 2800) {
txtarea.css('color','#000'); // Change text color of textarea
}
});
Вам нужна запятая между ваши события в вашем слушателе событий. «Ключ, мышь». Ожидается ли ваша функция в течение половины секунды до ее выполнения? – tylerlindell
@tlindell Нет необходимости в запятых между событиями, использующими этот метод связывания. Код создан для запуска doFunction() на 500 мс. Вероятно, проблема заключается в том, что изменение текстовой области не начинается каждые 500 мс. Я вызываю изменение в textarea и все еще ничего. Предупреждающие триггеры в пределах функции, но до сих пор изменение в текстовой области не инициировано ;-( – koolness
@tlindell - см. Обновление. Thx для ввода. – koolness