我该如何使用jQuery在焦点/失焦时切换元素的CSS样式?
$('.answerSpace').bind('blur', function(){
$('.normProf').toggleClass('opacProf');
});
$('.answerSpace').bind('focus', function(){
$('.opacProf').toggleClass('normProf');
});
现在我有了这个。但它并没有完全起作用...
看这个,这正是你们应该如何执行jQuery焦点切换的方法。
$('input').on('focus blur', toggleFocus);
function toggleFocus(e){
console.log(e.type)
if( e.type == 'focusin' ){
// do something on focus
}
else{
// do something else on blur
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input>
尝试一下
$('.answerSpace').bind('blur', function(){ $('.normProf').removeClass("normProf").addClass('opacProf'); });
$('.answerSpace').bind('focus', function(){ $('.opacProf').removeClass("opacProf").addClass('normProf'); });
如果我理解您的意思正确,您可以使用 onblur 和 onfocus 事件,并使用 toggleClass 函数:
$('#yourelement').bind('blur', function(){
$(this).toggleClass('your-class');
});
$('#yourelement').bind('focus', function(){
$(this).toggleClass('your-class');
});
bind('blur focus')
结合起来使用。 - John Magnolia模糊效果只有在您离开输入框时才会激活,因此您可以使用它来再次取消焦点。
$('input').focus(function(){
$(this).css('box-shadow', '0px 0px 1px #ccc');
});
$('input').blur(function(){
$(this).css('box-shadow', 'none');
});
if( e.type == 'focus' )
- Tayyab Chaudharyconsole.log(e.type);
并返回在输入字段获得焦点时为focus
,失去焦点时为blur
。这就是为什么我用focus
替换了focusin
。也许对某人有帮助。 - Tayyab Chaudharyfocus
事件不会冒泡。我已经在许多系统上使用focusin
事件超过12年了。 - vsync