keyup
- это единственное событие, которое позволяет увидеть состояние после нажатия клавиши.
Один подход заключается в ловушку keydown
и установить тайм-аут, чтобы сделать некоторую обработку после нажатия клавиши:
input.onkeydown= function() {
setTimeout(function() {
// do something
}, 1);
};
Однако, если это возможно сделать изменения без нажатия клавиши (и это обычно бывает, с помощью drag- и-drop и пункты меню, такие как вырезание и вставка), никакая проверка проверки ключевых событий не поможет. Вместо этого вы должны просто опросить состояние, чтобы узнать, изменилось ли оно. Вы можете поддержать это с помощью обработчика onkeyup или тайм-аута onkeydown, чтобы ускорить обновление этого конкретного случая.
var oldstate= input.value;
function checkState() {
if (input.value!=oldstate) {
// do something
oldstate= input.value;
}
}
setInterval(checkState, 1000);
input.onkeyup= checkState;
(При этом используется входной элемент для простоты, но в равной степени применимо к contentEditable.)
Существует также keydown ... не уверен, когда это срабатывает, хотя – SeanJA
Вы могли бы сделать некоторое время (элемент в фокусе) {// сделать что-то} Я думаю ...? – SeanJA