我试图在用户开始输入后将类(.active)添加到文本字段。我让它在某种程度上与以下代码一起工作,但由于某种原因,当用户开始键入时,.active 类不会立即应用,它仅在键入第二个字母后才应用。有什么想法吗?
$(document).ready(function() {
loginField = $('.field');
loginField.live('keydown', function(){
if ($(this).val()){
$(this).addClass('active');
}
});
});
最佳答案
您想要在此处keyup
,根据评论更新:
$(document).ready(function() {
$('.field').live('keydown', function(){
$(this).addClass('active');
}).live('keyup', function() {
$(this).toggleClass('active', $(this).val() != '');
});
});
您的 .live()
正确触发,但 .val()
在 keyup
触发之前不会改变, keydown
在值更新之前触发,因此您的 if()
在按下第二个键之前不为 true。
关于jQuery live keydown 在第二次 keydown 之前不会注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2609691/