怎么让DIV失去焦点后隐藏自身

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么让DIV失去焦点后隐藏自身相关的知识,希望对你有一定的参考价值。

我这个回答评论里的 无名duter 朋友告知我说 “可以给div或者span元素添加属性tabindex”。姑且测试一下,是支持的,感谢无名duter !只能怪自己学艺不精。

那么简陋的代码如下:

<!doctype html>
<html>
<head>
    <meta name="author" content="青青水豌豆 "/>
    <title>当红色div失去焦点时隐藏</title>
</head>
<body>
    <script>
        //创建红色DIV方块
        red = document.createElement('div');
        red.setAttribute('id','red');
        red.setAttribute('tabindex','1');
        red.style.cssText = "width:100px;height:100px;background-color:red;";
        document.body.appendChild(red);        
        
        //创建黄色div方块 
        yellow = document.createElement('div');
        yellow.setAttribute('id','yellow');
        yellow.setAttribute('tabindex','2');
        yellow.style.cssText = "width:100px;height:100px;background-color:yellow;";
        document.body.appendChild(yellow);
        
        //当红色方块失去焦点时隐藏
        let redHide = document.getElementById('red');
        redHide.onblur = () =>  redHide.style.display = 'none';
    </script>
</body>
</html>

说明一下:以上代码用文本文档保存后,修改扩展名.html,然后再用chrome或者firefox或者最新版的微软Edge浏览器打开,IE浏览器不支持。双核浏览器请使用极速模式,兼容模式也是调用的IE也不支持。

-

-

-

--------------------------------------------------------------

以下是以前回答的。不做修改。

你好,DOM中的元素DIV不支持失去焦点事件onblur。

支持失去焦点的元素有button, checkbox, fileUpload, layer, frame, password,
radio, reset, submit, text, textarea, window。没有包括div

你可以让某个事件发生的时候尝试让这个div隐藏,比如

<div id="test">你需要为这个盒子设置宽高和颜色</div>
<button>btnnn</button>
<script>
var test = document.getElementById('test');
var btn  = document.getElementsByTagName('button')[0];
btn.onclick = function()
test.style.display = 'none';

//当然,也可以让这个按钮失去焦点的时候隐藏test的div
btn.onblur = function()
test.style.display = 'none';

</script>

当你点击这个按钮的时候,可以隐藏div。

这样回答你会觉得太简陋了,或许你需要别的,比如鼠标移除div或者点击其他事件某个条件让其隐藏。

参考技术A 一开始的想法是在弹出的DIV上用onMouseout事件隐藏自己,如果这个DIV中没有其它内容的话是可以实现的

react native 隐藏键盘 TextInput失去焦点

参考技术A 在实际的开发中 当用到rn的TextInput等组件 并获得焦点的时候 会自动弹出键盘

当输入完毕后 键盘也不会隐藏 输入框也是聚焦的状态

有两种方法可以隐藏键盘

方法一:使用rn   Keyboard的dismiss方法 隐藏键盘 

我把这个方法用在了 点击提交的时候 ,但是成功提交后 键盘又弹出 并且第二个输入框是聚焦的状态 (显然这个方法不行)

方法二:调用输入框失焦方法 blur
首先 用户输入完毕后 点击页面 其他区域可以隐藏键盘 其次 直接点击提交 也能隐藏键盘

我在页面最外层用的TouchableWithoutFeedback(只响应用户的点击事件 在ui上无任何改变)

当用户onPress的时候 调用 Keyboard的dismiss方法 隐藏键盘 
其次 在 输入框组件里写上 ref='InputText(自定义名字)' ,在点击提交的时候 调用该组件 this.refs.InputText.blur() 使这个输入框失去焦点 这样也影藏了键盘

以上是关于怎么让DIV失去焦点后隐藏自身的主要内容,如果未能解决你的问题,请参考以下文章

jquery一个div怎么获得焦点和失去焦点

js 输入框获取焦点显示div 失去焦点隐藏div 点击div也消失了怎么解决

C++ Builder中如何让窗体一直显示最前,焦点不失去,就是点不了别的窗体,切换不了窗体,总处在被激活状态

jquery 怎么让输入框失去焦点

网站开发div在Jquery中的鼠标事件失去焦点

js文本域执行onkeyup事件后会失去焦点,怎么解决失去焦点的问题?