我写了这个:
$('[name=item-title]').live('keyup',function(k){
char_limit=parseInt($('[data-charlimit]').attr('data-charlimit'));
total = char_limit-parseInt($(this).val().length);
$('.charcount span').text(char_limit-parseInt($(this).val().length));
});
但是在最初的几个单词之后,它开始变得非常缓慢,我会打字,然后单词会显示毫秒。如果我喜欢250个字,它似乎落后了近3/4秒。有什么想法吗?对我来说,我所写的内容似乎相当小......
答案 0 :(得分:2)
char_limit
。打字时不会改变。total
变量,或完全省略其计算parseInt
s,除了第一个,它们没用。这会给你
var char_limit=parseInt($('[data-charlimit]').attr('data-charlimit'));
$('[name=item-title]').live('keyup',function(k){
$('.charcount span').text(char_limit-$(this).val().length);
});
我不确定是否有多个char_limit
,因为这会破坏那些。看来您当前的$('[data-charlimit]')
方法无论如何都不允许这样做。
答案 1 :(得分:2)
你在每个角色进行一次DOM遍历,你不确定为什么它会变慢?
// calculate upper limit once -- it won't change, presumably
var char_limit=parseInt($('[data-charlimit]').attr('data-charlimit'));
$('[name=item-title]').live('keyup',function(k){
// length is already numeric, no need to parse it
var remaining = char_limit - $(this).val().length;
$('.charcount span').text( remaining ); // use the result, note I renamed it
});