$("#search").click(function(){
var act = document.activeElement.id;
if(act == "search" ){
$(".search-btn i").css("color","#00C680");
$(".search-btn i").css("z-index","1");
}else{
$(".search-btn i").css("color","#FFF");
$(".search-btn i").css("z-index","-1");
}
});
input为焦点时,if代码生效了,不是焦点时,else没有生效,是哪里写错了?
可以用focus()和blur()的方法判断是否获得焦点和失去焦点。
$("#search").focus(function(){
$(".search-btn i").css("color","#00C680");
$(".search-btn i").css("z-index","1");
}).blur(function(){
$(".search-btn i").css("color","#FFF");
$(".search-btn i").css("z-index","-1");
});
你的点击事件都绑定在了search上了,点击其它地方肯定不会调用click里面的方法了,当然也就不会执行。
你点击一个id为search的标签,然后判断这个标签是否为获得焦点。
这个写法当然会一直往if的方向走下去啊, 因为你点击一个标签,都会默认获得焦点,if的条件一直成立。
如果仅仅是纯展示层的问题可以思考用css解决?
不知道你的dom结构。以bootstrap的dom结构为例:
<div class="input-group">
<input type="text" class="form-control" placeholder="Search for...">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
</div>
input.form-control + .input-group-btn > .btn {
color: #FFF;
z-index: -1;
}
input.form-control:focus + .input-group-btn > .btn {
color: #00C680;
z-index: 1;
}
关于activeElement对象我也只能参见文档:https://developer.mozilla.org/zh-CN/docs...
可以通过:focus这种选择器 判断,例如
if( $('input:focus').length==0 ){
//不是焦点
}else{
//是焦点
}