javascript - 关于js判断input是否为焦点,false时的问题
迷茫
迷茫 2017-04-11 09:07:28
[JavaScript讨论组]
$("#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没有生效,是哪里写错了?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(5)
伊谢尔伦

如果仅仅是纯展示层的问题可以思考用css解决?
不知道你的dom结构。以bootstrap的dom结构为例:

<p 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>
</p>
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...

PHP中文网

可以通过:focus这种选择器 判断,例如
if( $('input:focus').length==0 ){
//不是焦点
}else{
//是焦点
}

阿神

你点击一个id为search的标签,然后判断这个标签是否为获得焦点。
这个写法当然会一直往if的方向走下去啊, 因为你点击一个标签,都会默认获得焦点,if的条件一直成立。

怪我咯

你的点击事件都绑定在了search上了,点击其它地方肯定不会调用click里面的方法了,当然也就不会执行。

巴扎黑

可以用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");
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号