javascript的focus和blur的疑惑?

图片描述

想要实现的效果如下

1.点击input时A显示
2.在A上点击时A不消失
3.在body上点击时A消失

我使用的blur,点击A的时候A也消失了

阅读 4.4k
5 个回答

给A设个id或者其他属性可随意,注意保持唯一性,blur的时候传入e,获取e.target.id,判断是不是等于你设的id就行了,不等才让A消失

思路:监听全局的点击事件,判断event.currentTarget是否为A,是---什么都不做,否----A消失,input blur不做处理,focus显示A

给个提示,写一段伪代码:

var A = getDomElement(A);
var body = getDomElement(body);
document.onclick = function(e) {
    if(e.target === A){
        return;
    }
    //A消失
}

focus是会逐级传递的,你在A点下去之后,body也一样会得到focus事件。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题