3
我正在处理多个函数将各种事件监听器添加到最初隐藏的div的事情,我们只需将其称为secretBlock
。只有一个将永远是活跃在任何给定的点,但都表示职能将由操纵它:Javascript无法在克隆后取消隐藏元素?
- 首先克隆
sercetBlock
,以确保没有以前的听众仍然会附加 - 然后将显示设置为
flex
HTML:
<div id="secretBlock" hidden>Secret</div>
的JavaScript:
function exampleFuction() {
var secretBlock = document.getElementById('secretBlock');
var secretClone = secretBlock.cloneNode(true);
secretBlock.parentNode.replaceChild(secretClone, secretBlock);
secretBlock.style.display = 'flex';
....
}
但设置显示器的最后一部分未触发。
我以为这已经是与异步的烦躁,但
setTimeout(function(){ secretBlock.style.display = 'flex' }, 999);
也没有效果。
然而,其中一个功能设置显示,使其正确火灾后追加的另一个DIV权在div:
secretBlock.parentNode.replaceChild(secretClone, secretBlock);
secretBlock.style.display = 'flex';
otherDiv.appendChild(secretBlock);
位的测试之后,我发现它不”不管什么时候我设置显示器(现在或以后)或代码中的位置,只要secretBlock
被附加到另一个div,显示器的改变将被注册,否则保持隐藏状态。
.......这八九不离十留给我无能,这是怎么回事,任何有识之士将因此非常感谢~~
它不是隐藏的,它不是文档的一部分,因为您从文档中删除了secretBlock:'secretBlock.parentNode.replaceChild(secretClone,secretBlock);' –
@ Dr.Molle我在那之后添加了一个返回检查,但铬说,它仍然存在?虽然元素闪现暗示着一个变化。 – House3272