1

Erst wenn die Taste #collapse_init geklickt ich den Text auf der Schaltfläche Verwaltung zu ändern, um „alles anzeigen“ oder „alle verstecken“ entsprechend die active Boolesche VariableZusammenbruch Tabs „von Hand“ nicht Text auf der Schaltfläche initiieren ändern

Wenn ich die Registerkarten manuell (eins nach dem anderen) ein-/ausgeblendet habe, wird der Text auf der Schaltfläche nicht geändert, ich versuche herauszufinden, wie das behoben werden kann.

  • ich meine, wenn alle Registerkarten angezeigt werden oder nicht (aber nicht über die Schaltfläche) - der Schaltflächentext wird nicht geändert.
  • ** zur Zeit funktioniert der Stift nicht richtig - die Taste funktioniert nicht richtig (nur in der "Stift", in meinem Code es funktioniert), es ist nicht zusammenfassen/alle in einem (versuchen, herauszufinden, warum , ebenfalls).

    var active = false; 
     
    $('#collapse_init').click(function() {    
     
        if (active) { 
     
        active = false; 
     
        $('.panel-collapse').collapse('hide'); 
     
        $('.panel-title').attr('data-toggle', 'collapse'); 
     
        $(this).text('Show all'); 
     
        } else { 
     
        active = true; 
     
        $('.panel-collapse').collapse('show'); 
     
        $('.panel-title').attr('data-toggle', ''); 
     
        $(this).text('Hide all');      
     
        } 
     
    }); 
     
    
     
    $('.accordion-toggle').click(function() { 
     
        var visible = $('.accordion-toggle:visible').length; 
     
        if(visible >0){ 
     
        $('#collapse_init').text('Hide all'); 
     
        }else{ 
     
        $('#collapse_init').text('Show all'); 
     
        } 
     
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/> 
     
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script> 
     
    <div class="container"> 
     
        <button id="collapse_init" class="btn btn-default ">Show all</button> 
     
    \t <hr> 
     
        <div class="panel-group" id="accordion"> 
     
        <div class="panel panel-default"> 
     
         <div class="panel-heading"> 
     
         <h4 class="panel-title"> 
     
          <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseOne"> 
     
          Collapsible Group Item #1 
     
          </a> 
     
         </h4> 
     
         </div> 
     
         <div id="collapseOne" class="panel-collapse collapse "> 
     
         <div class="panel-body"> 
     
          ONe Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. 
     
         </div> 
     
         </div> 
     
        </div> 
     
        <div class="panel panel-default"> 
     
         <div class="panel-heading"> 
     
         <h4 class="panel-title"> 
     
          <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo"> 
     
          Collapsible Group Item #2 
     
          </a> 
     
         </h4> 
     
         </div> 
     
         <div id="collapseTwo" class="panel-collapse collapse "> 
     
         <div class="panel-body"> 
     
          Two Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. 
     
         </div> 
     
         </div> 
     
        </div> 
     
        <div class="panel panel-default"> 
     
         <div class="panel-heading"> 
     
         <h4 class="panel-title"> 
     
          <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseThree"> 
     
          Collapsible Group Item #3 
     
          </a> 
     
         </h4> 
     
         </div> 
     
         <div id="collapseThree" class="panel-collapse collapse "> 
     
         <div class="panel-body"> 
     
          Three Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. 
     
         </div> 
     
         </div> 
     
        </div> 
     
        </div> 
     
    </div>

    CodePen

    codepen

    Antwort

    2

    diesen Code hinzufügen und

    $('.accordion-toggle').click(function() { 
        var visible = $('.accordion-toggle:visible').length; 
        if(visible >0){ 
        $('#collapse_init').text('Hide all'); 
        }else{ 
        $('#collapse_init').text('Show all'); 
        } 
    }); 
    
    +0

    ich den Stift mit dem Code aktualisiert Sie vorgeschlagen, seine nicht funktioniert. versuchen Sie, jeden Tab (manuell, einzeln) anzuzeigen, der Text auf der Schaltfläche wird nicht in "alle anzeigen" geändert –

    +0

    Akkordeon funktioniert nicht korrekt in Codepen. möglicherweise können Sie versuchen, in Ihrem Code – Vineesh

    +0

    oder versuchen Sie es mit var visible = $ ('. collapse.in: visible').length; – Vineesh

    1

    versuchen Ich denke, die i Sie erfahren, dass $('.accordion-toggle:visible').length abgerufen wird vor das Panel hat geöffnet/geschlossen.

    sollten Sie verwenden shown.bs.collapse und hidden.bs.collapse zu erkennen, wenn ein Panel Öffnen oder Schließen beendet ist.

    Hier ist mein Riss. Es ist nicht ganz da, aber es ist ein bisschen sauberer (vielleicht).

    var active = false, 
    $collapseBtn = $('#collapse_init'), 
    $accordion = $('#accordion'); 
    
    $collapseBtn.on('click',function(){ 
        active = ! active; 
        $('.panel-collapse').collapse(active ? 'show' : 'hide'); 
        $('.panel-title').attr('data-toggle', active ? '' : 'collapse'); 
    }) 
    
    $accordion.on({ 
        'shown.bs.collapse': function() { 
        active = true; 
        $collapseBtn.text('Hide all'); 
        }, 
        'hidden.bs.collapse': function (e) { 
        active = ! ! $('.panel-collapse:visible').length; 
        $collapseBtn.text((active ? 'Hide' : 'Show') + ' all'); 
        } 
    }); 
    

    https://codepen.io/jamespoel/pen/dRePNQ

    +0

    Was bedeuten diese Klassen? 'hidden.bs.collapse' und' showed.bs.collapse' sind sie in was 'boostrap collapse' eingebaut? –

    +0

    auch, was ist '! ! 'in' hidden.bs.collapse' Funktion –

    +0

    Sie sind keine Klassen, sie sind Ereignisse. Sie werden intern per Bootstrap aufgerufen. ** shown.bs.collapse ** Tritt ein, wenn das zusammenklappbare Element vollständig gezeigt ** hidden.bs.collapse ** Tritt ein, wenn das zusammenklappbare Element vollständig verborgen ist der Doppel-Knall ('!') In Front des '$ ('. panel-collapse: visible'). length 'ist nur ein Trick, um eine ganze Zahl schnell in einen booleschen Wert zu verwandeln. Es ist im Grunde das gleiche wie '$ ('. Panel-collapse: visible'). Length> 0'; Ich bevorzuge es einfach :) Mehr dazu [hier] (http://brianflove.com/2014/09/02/whats-the-double-exclyment-mark-for-in-javascript/) – James

    Verwandte Themen