代码之家  ›  专栏  ›  技术社区  ›  gtilflm

jQuery:隐藏容器,然后显示该容器中的元素

  •  -1
  • gtilflm  · 技术社区  · 8 年前

    我想用类隐藏容器元素 page_wrapper 。然后我只想显示该容器中id为的一个元素 infinite_math_container .

    我的代码。。。

    $('.page_wrapper').hide();
    $('#infinite_math_container').show().delay(200);
    

    问题: $('.page_wrapper').hide(); 很好,但 $('#infinite_math_container').show().delay(200); 没有实际显示。

    思想?

    2 回复  |  直到 8 年前
        1
  •  1
  •   Titus    8 年前

    就像@ukaszTrzewik说的。如果元素的父元素是隐藏的,则调用 show() 不会有任何影响。

    $(".page_wrapper").children().not("#infinite_math_container"‌​).hide();
    

    这将隐藏的所有子元素 .page_wrapper 除了 #infinite_math_container .

    $(".page_wrapper").children().hide().find("#infinite_math_container"‌​).delay(200).show();
    

    它将隐藏的所有子元素 .page_包装器 给孩子看 在延迟之后 200 毫秒。

    只有在 #无限路径容器 元素是的直接后代 .page_包装器 .

        2
  •  0
  •   jeremykenedy    8 年前

    尝试使用 fadeOut 它允许回调:

    $('.page_wrapper').fadeOut(0, function() {
        $('#infinite_math_container').show();
    });
    

    你可以 according 文档使用hide()作为回调,但它只是一个首选项。

    $('.page_wrapper').hide(0, function() {
        $('#infinite_math_container').show();
    });
    

    另一种方法是使用 setTimeout 功能:

    $('.page_wrapper').hide();
    setTimeout(function(){
        $('#infinite_math_container').show();
    }, 2000);