jQuery 中类似 Twitter 的文本区域/输入计数器
我正在试验 jQuery 中的文本区域/输入计数器。到目前为止我已经这样写了:
$textarea.keyup(function(){
$chars_remaining.html((200 - parseInt($textarea.val().length)));
});
$textarea.keydown(function(){
$chars_remaining.html((200 - parseInt($textarea.val().length)));
});
但是不知何故,如果我按下一个键超过 3 秒,计数器就会卡住,它减少得非常慢。相比之下,无论您键入/按住按键的速度有多快,Twitter 的计数器都不会遇到任何延迟。
我应该如何调整我的代码才能顺利运行?
谢谢你!
I am experimenting with a textarea/input counter in jQuery. So far I have written this:
$textarea.keyup(function(){
$chars_remaining.html((200 - parseInt($textarea.val().length)));
});
$textarea.keydown(function(){
$chars_remaining.html((200 - parseInt($textarea.val().length)));
});
But somehow, if I press a key for more than 3 seconds, the counter kind of gets stuck, it decreases really slow. In comparison, Twitter's counter does not encounter any lag no matter how fast you type/hold a key down.
How should I tweak my code so it will run smoothly?
Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
如果你想使用自己的代码,试试这个。这是一个小插件。
小提琴在这里: http://jsfiddle.net/XScwS/
if you want use own code, try this. It is little plugin for this.
Fiddle for this is here: http://jsfiddle.net/XScwS/
有一些现有的插件可以满足您的需求。
http://plugins.jquery。 com/plugin-tags/char-limit
There's a few existing plug ins that do what you want..
http://plugins.jquery.com/plugin-tags/char-limit
在我自己搜索解决方案时发现了这个(并且还发现了您的问题!!):
http://cssglobe.com/post/7161/jquery-plugin-simplest-twitterlike-dynamic-character-count-for-textareas
看起来很容易实现,也非常有效。
希望这有帮助。
Found this whilst searching for the solution myself (and also found your question!!):
http://cssglobe.com/post/7161/jquery-plugin-simplest-twitterlike-dynamic-character-count-for-textareas
Looks very easy to implement and very effective too.
Hope this helps.
就像@Jakub所说的..但这里是相同的函数,但是带有负计数器,如果计数小于0,它也会计数为负
Like what @Jakub said.. but here is the same function but with minus counter if the count less than 0 it will count minus too
如果您愿意,这里是 HTML 的限制:
Here is a limitation by HTML if you like:
<input type="text" maxlength="2" />