jquery keyup 忽略不变的字符

发布于 2024-11-09 22:37:41 字数 247 浏览 4 评论 0原文

我试图在使用 keyup 更改 contenteditable div 时触发一个事件。不幸的是,它也捕获了诸如用箭头键移动插入符号之类的东西。我只想让它发现实际的变化。

我读了这个问题,看起来很相似,但是那里的解决方案不适用于换行之类的事情。有想法吗?

I'm trying to get an event to fire whenever a contenteditable div is changed using keyup. Unfortunately it's also catching things like moving the caret with the arrow keys. I only want it to spot actual changes though.

I read this question, which seems similar, but the solution on there doesn't work for things like linebreaks. Ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一绘本一梦想 2024-11-16 22:37:42

一种方法是在处理程序外部缓存长度,然后将文本区域的当前长度与缓存的长度进行比较。如果它们不同,那么您可以假设按下的键将内容添加到文本区域。希望这有帮助。

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();
   }
});

One way would be to cache the length outside the handler then compare the current length of the textarea against your cached length. If they differ then you can assume the key that was pressed added content to the textarea. Hope this helps.

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();
   }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文