每当使用keyup更改contenteditable div时,我都会尝试触发事件。不幸的是,它也会像使用箭头键移动插入符号一样。我只想让它发现实际的变化。
我看了this问题,看起来很相似,但是那里的解决方案对于像linebreaks这样的东西不起作用。想法?
答案 0 :(得分:2)
一种方法是在处理程序之外缓存长度,然后将textarea的当前长度与缓存长度进行比较。如果它们不同,那么您可以假设按下已添加内容到textarea的键。希望这会有所帮助。
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();
}
});