JQuery Keyup игнорировать неизменяемые символы - PullRequest
3 голосов
/ 26 мая 2011

Я пытаюсь заставить событие срабатывать всякий раз, когда contenteditable div изменяется с помощью keyup. К сожалению, это также ловит такие вещи, как перемещение каретки с помощью клавиш со стрелками. Я только хочу, чтобы он заметил реальные изменения.

Я прочитал этот вопрос, который кажется похожим, но решение там не работает для таких вещей, как разрывы строк. Идеи?

1 Ответ

2 голосов
/ 26 мая 2011

Одним из способов будет кэширование длины вне обработчика, а затем сравнение текущей длины текстовой области с вашей длиной в кэше.Если они различаются, вы можете предположить, что нажатая клавиша добавила содержимое в текстовую область.Надеюсь, это поможет.

var textarea = $('textarea').get(0),
    length = $(textarea).val().length;

$(textarea).keyup(function() {
   if($(this).val().length != length) {

     //do something


     //cache new length
     length = $(this).val().length();
   }
});
...