jquerylivekeydown不';直到第二次按键时才注册
我试图在用户开始键入时向文本字段添加一个类(.active)。我让它在某种程度上与以下代码一起工作,但由于某种原因,当用户开始键入时,不会立即应用.active类,它只在键入第二个字母后应用。有什么想法吗jquerylivekeydown不';直到第二次按键时才注册,jquery,Jquery,我试图在用户开始键入时向文本字段添加一个类(.active)。我让它在某种程度上与以下代码一起工作,但由于某种原因,当用户开始键入时,不会立即应用.active类,它只在键入第二个字母后应用。有什么想法吗 $(document).ready(function() { loginField = $('.field'); loginField.live('keydown', function(){ if ($(this).val()){ $
$(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()
直到按下第二个键后才为真。谢谢您的提示,尼克。使用keyup更好,但由于.active类仅在用户释放密钥后添加,因此它仍然不是即时的。有什么方法可以让类在用户按下键时正确添加吗?@Simon-只要有文本,它就应该处于活动状态?或者仅当正在编辑且其中包含文本时?选项2,当正在编辑且其中包含文本时。我已经让js的其余部分删除blur上的.active类。@Simon-尝试更新的示例,这会立即添加该类,而不管值是多少,然后检查键何时被解除,如果值为空,则删除该类。