2016-04-11 15 views
1

Das Tutorial auf der Datatables website ist klar:Datentabellen umschalten Spalte Sichtbarkeit Verzögerung/Effekte

Nachdem ich Datentabellen sagen, welche Spalte ich rede, ich habe nur den Knebel in:

column.visible(! column.visible()); 

oder ich konnte, in einem voll auf Art und Weise, schreiben:

if (column.visible() === true) { 
    column.visible(false); 
    } else { 
    column.visible(true); 
    } 

gibt es eine Möglichkeit, eine Art „Timing“, um dies zu setzen, vielleicht so, dass die Säule langsam verblasst, anstatt nur zu verschwinden/r Auftauchen?

Ich konnte keine Dokumentation zu diesem finden.

Antwort

1

Ich würde definitiv nicht empfehlen eine Spalte zu verblassen. Es ist ziemlich hässlich und dauert ewig. Das Kollaps am Ende wird noch passieren.

Wie auch immer, ich habe dies außerhalb von datatables mit einfachen jQuery getan. Im Grunde behalten Sie Ihren HTML-Code gleich, aber Sie verwenden reguläre jQuery, um Dinge anstelle von Databases auszuführen. Hier ein Beispiel:

$('a.toggle-vis').on('click', function (e) { 
    var column = $(this).attr("data-column") - 1; 

    $('.yourDataTable td:nth-child('+column+'), .yourDataTable th:nth-child('+column+')' ).fadeOut(); 

    return false; 
} 

Obwohl ich empfehle gegen :nth-child verwenden. Wenn Sie Ihre Datentabelle durch eine Schleife generieren, würde ich einfach eine class="column_#" zu jeder Spalte hinzufügen und jQuery verwenden, um stattdessen zu greifen. (# Ist die Nummer der Spalte)

Edit: Hinzufügen des SetTimeout Beispiel

if (column.visible() === true) { 
    setTimeout(function(){ 
     column.visible(false); 
    }, 500); //delays the function with 0.5 seconds 
    } else { 
    column.visible(true); 
    } 
+0

Das ist wirklich toll - ich schätze die Zeit, die Sie in diese Antwort setzen. Ob ich verblasse oder nicht - etwas, um es "ein wenig zu verlangsamen", so dass der Benutzer tatsächlich die Spalte sehen kann, die kommt und geht, könnte für meine Benutzerbasis hilfreich sein. Nur zu wissen, dass es möglich ist, ist nett. Vielen Dank! –

+1

Hey da. Wenn Sie möchten, dass der Benutzer die Zeit hat, die Spalte verschwinden zu sehen, könnten Sie immer eine Zeitüberschreitung verwenden, richtig? Damit meine ich, die Aktion mit einer kleinen Zeitverzögerung zu verzögern. Soll ich dir ein Beispiel dafür aufschreiben? – NoobishPro

+0

Das wäre schön - danke! –

Verwandte Themen