exo*_*boy 27 javascript jquery
好的,我有一种情况需要将一些克隆的DOM元素添加到网页中的父DIV元素.
我有四个父母DIV持有人.当我将其可见性从可见切换到隐藏时,会发生一些非常奇怪的事情:所有后期页面加载的子项都保持可见!
这是下载源代码的链接:http: //www.clarencebowman.com/parent-child-visibility/parent-child-visibility.zip
以下是第一手查看现象的链接:http: //www.clarencebowman.com/parent-child-visibility
您将看到的是一个红色框,其中添加了一些洋红色子元素,页面加载后.页面底部有一个显示/隐藏按钮.
我在父DIV中添加了一个绿色条纹,以显示其子元素确实正确地继承了它的可见性.
但是在添加克隆的子元素然后隐藏父DIV之后,克隆的子元素的NONE将消失!
在运行复制脚本之前,我已经尝试将要克隆的子项放在父DIV中...它没有任何区别.
在页面加载后添加的任何子元素似乎都以某种方式丢失了与父DIV元素(红色框)的继承链接.....
还有其他人经历过吗?是否有一种简单的方法来修复/替换/重新分配孩子的继承?
我正在使用jQuery 1.5.
Jar*_*ish 29
您没有display: none在父级上使用(这会影响子级),您在visibility: none父级上使用,并且子级内部具有visibility: visiblecss属性.如果您希望子项隐藏,请将它们设置为visible: hidden也可以display: none在父元素上使用.
因此,当凯尔指出的那样,你可以使用$('#parent_div').toggle();,这将很容易地应用display: none到#parent_div.
我只是添加它visibility并且display不一样.例如,如果一个元素是width: 10px,height: 10px,visibility保留元件的三维空间(它仍然占用width: 10px,height: 10px),而display: none完全消除元件的从父元素(尺寸width: 0,height: 0).Visibility意味着它仍然在视觉上表现出与其他受影响元素相关的流动,它只是没有看到; display意味着它在屏幕上看不到也没有与其他显示/可见元素相关联.
Fra*_*del 29
许多其他人已提到使用,display: none但正如您所知,这与使用该visibility属性有完全不同的行为.
你可以做的一件事是使用hidden/ inherit而不是hidden/ visible.inherit默认情况下会导致元素可见,除非其中一个元素不是.这是你想要的.