2016-11-21 3 views
-1

Ich möchte Panel-Körper ausblenden, wenn es leer ist.Wie zu verbergen Panel-Körper ist leer?

Hier ist das Beispiel: BootPly

Javascript-Code:

$(function() { 
    $('#container').load(function() { 
     if($.trim($(this).contents().find("container").find('panel-body').length) == 0) { 
      $(this).hide(); 
     } 
    }); 

-Code HTML:

<div class="container"> 
    <div class="row clearfix"> 
     <div class="col-md-9 column"> 
      <div class="panel panel-primary"> 
       <div class="panel-heading">Content</div> 
       <div class="panel-body fixed-panel"> 
        <div class="form-group"> 

        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
+0

Sie müssen sicherstellen, dass das "load" -Ereignis ausgelöst wird, damit Ihr Code ausgeführt wird und Ihre '.find()' -Selektoren vor den Klassennamen zu fehlen scheinen. –

Antwort

0

Wie wäre es so etwas? http://www.bootply.com/bKb0isdzKA

$(function() { 
    $('.form-group').each(function() { 
     if ($(this).is(':empty')) { 
      $(this).closest('.container').hide(); 
     } 
    }); 
}); 

Sie hatten ein paar Probleme. Zum einen verwendeten Sie #container als Selektor, obwohl container eine Klasse ist. Darüber hinaus haben Sie überprüft, ob body-panel leer war, aber es enthielt eine untergeordnete div, so dass es immer HTML-Inhalt hätte.

Der obige Code wird jede .form-group Schleife durchlaufen und den übergeordneten Container ausblenden, wenn es leer ist.

Wenn das nicht genau das ist, was Sie vorhatten, lassen Sie es mich wissen und ich kann Anpassungen vornehmen.

+0

Ich würde vorschlagen, die Klasse "versteckt" gegen die Verwendung von "show/hide" zu schalten. Es ist viel schneller und bewegt sich für Bootstrap meiner Meinung nach. –

+0

Hallo Santi, nicht arbeiten, bitte überprüfen Sie den Link: http://www.bootply.com/3IZnJQlOqu –

+0

Ich legte das Bild zu testen, weiter ausblenden ... –

Verwandte Themen