【问题标题】:Hide/Show div without affecting the inner elements隐藏/显示 div 而不影响内部元素
【发布时间】:2013-05-17 13:19:07
【问题描述】:

基本问题:

将隐藏的父级设为:visible 后,其子级将保持“不可见


我的 HTML 如下

    <div class="root">
      <h3>Title</h3>
      <div>
        <p>description</p>
        <div>Sub one description</div>
        <div>
          <table>
            <tbody><tr><td><div>Flag</div></td></tr></tbody>
          </table>
      </div>
    </div>
  <div>

当我使用.root {display:none;}$('.root').slideUp(500); 时,内部 div 和内部 TD 元素显示为无。因此,当我展开根目录或制作.root{display:block;}$('.root').slideDown(500); 时,不会显示内部 div 和 TD。是否可以在不影响内部元素的情况下隐藏和显示完整的根 div。

我尝试了$('.root').hide();$('.root').css('height','0'); 以及 jquery 中的动画功能,但没有任何效果。请帮助我完全隐藏和显示根,但不影响内部元素样式。提前致谢。

已编辑:

我还必须隐藏子元素,但是当我显示根时,也应该显示子元素。现在不显示子元素。

【问题讨论】:

  • 你不会阅读这个问题。问题是内部元素即使在.show 之后仍然隐藏。这里还有更多我们看不到的事情。请向我们展示你的 CSS 和 JS
  • @VoidKing 显然因为他尝试使用不同的jQuery方法...
  • 我不敢相信有人对这个问题投了赞成票...他是用其他帐户登录并为自己投了赞成票吗?
  • 我试图在一个有 1000 行 CSS 和 jquery 的页面上实现这个。所以无法弄清楚确切的问题。
  • @VoidKing 我投了赞成票,让他有时间和机会编辑他的问题并向我们提供详细信息。他有一个真正的问题,给他一个机会,不要因为你给出的答案不正确而否定

标签: javascript jquery css


【解决方案1】:

这里有什么问题,你的问题一定是隐藏了你的孩子。你不能分享一些代码吗?

解释的问题在这里工作得很好:

http://jsfiddle.net/48xKS/

$('.root').slideUp(500);

setTimeout(function() {
      $('.root').slideDown(500); 
}, 2000);

【讨论】:

  • 终于有人读到这个问题了!我很为你骄傲!现在,如果我们能让作者给我们更多信息,比如 CSS 和布局。我有一种感觉,这要么是 CSS,要么是“开火顺序”问题。为您“阅读”问题+1!
  • 我只是厌倦了这里的人,而不是“阅读问题”然后试图回答它。我最近有 2 个问题因为被标记为“重新发布”而被关闭,人们给了我答案……我已经在我的问题中回答了!如果他们花时间阅读这个问题,他们会发现这不是转发,他们的回答也没有帮助,因为我已经使用了那个确切的结构!
【解决方案2】:

我认为你不能使用 display:block 来显示节点。

使用以下隐藏:

$('.root').css('display','none');

以及以下要显示的内容:

$('.root').css('display','');

通过这种方式,我认为再次显示 root 时不会影响您的 html

【讨论】:

  • 感谢您的努力。我试过你的解决方案。但这对我不起作用。
  • 检查这个小提琴。 jsfiddle.net/cdNVF 我添加了隐藏/显示按钮。它正在工作,但在您的情况下,CSS 可能会产生一些问题。如果您可以通过 jsFiddle 共享您的 CSS 代码,那就太好了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多