gpt4 book ai didi

javascript - 当文本区域/输入模糊/失去焦点时仍然显示 div

转载 作者:行者123 更新时间:2023-11-28 08:55:56 25 4
gpt4 key购买 nike

所以我尝试使用 onfocus 和 onblur 隐藏/显示 div 元素:

<textarea onfocus="document.getElementById('divID1').style.display='block';" onblur="document.getElementById('divID1').style.display='none';"></textarea>
<div id="divID1">

这工作正常,但问题是当文本区域/输入不再具有焦点时,div 会再次隐藏。

这是整个代码:JSFIDDLE link .
您可以看到您无法选中复选框或选择文本。

如何才能在文本区域失去焦点时仍然显示 div 元素,或者在单击 div 时使文本区域仍然具有焦点?

抱歉,我是 Javascript 新手。

提前致谢,
菲利普

最佳答案

这个问题并不简单,但根据 this answer ,可以通过以下方式解决:

HTML

<textarea id="example1" onfocus="focushandler('divID1');"></textarea>
<br />
<textarea id="example2" onfocus="focushandler('divID2');"></textarea>
<br />

<div id="divID1">
<p>This div is blue</p>
<br />
<input type="checkbox" />Checkbox A
</div>
<div id="divID2">
<p>This div is green</p>
<br />
<input type="checkbox" />Checkbox B
</div>

Javascript

var current = null; //currently shown div - divID1 or divID2

function focushandler(id) {
if (current !== null) {
current.style.display = 'none';
}
var div = document.getElementById(id);
div.style.display = 'block';
current = div;
}

function clickhandler(e) {
if (current == null) { //if both divs are hidden
return;
}
e = e || window.event; //for IE8,7 compatibility
var t = e.target || e.srcElement; // clicked element
var sig = false;
// now check all parents
while (t) {
if (t === current || t.nodeName == 'TEXTAREA') {
sig = true;
}
t = t.parentNode;
}
if (sig) {
return;
}
current.style.display = 'none';
current = null;
}

if (document.documentElement.addEventListener) {
document.documentElement.addEventListener('click', clickhandler, false);
} else if (document.documentElement.attachEvent) { // for IE8-7 compatibility
document.documentElement.attachEvent('onclick', clickhandler);
}

JSFiddle :http://jsfiddle.net/PfQfN/4/(适用于 Firefox、Chrome、IE7-10、Safari 和 Opera)。或者,您也可以使用稍作修改的代码:http://jsfiddle.net/PfQfN/6/(效果相同)。

更新了 CSS:根据 this very useful answer ,这些元素可以更好地定位,如本 fiddle 所示:http://jsfiddle.net/PfQfN/9/

关于javascript - 当文本区域/输入模糊/失去焦点时仍然显示 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18497914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com