Změna chování ->Toggle() … mohl by nastavovat class namísto style?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ic
Člen | 430
+
0
-

Zdravím… nedá se nějak změnit chování Toggle? Myslím to, jak skrývá formulářové prvky.
Teď to funguje tak, že se nastaví style="display: none;" té skupině prvků, která nemá být vidět.

Mě se ale nelíbí to display: none, co kdybych chtěl například visibility: hidden, aby se zachovalo místo pro zobrazované prvky?

Ideální by myslím bylo, pokud by šlo nastavit atribut class="neco". Protože jsem si jako šablonu připravil úžasné css3 efekty přechodu (pomocí form input[type="checkbox"]:checked ~ div.obsahujici-formulare{/*něco*/} a form input[type="checkbox"] ~ div.obsahujici-formulare{/*něco jiného*/}), kterými se formulář objeví a zase zmizí, pak napojil toggle, který má jen display: none, takže bylo vlastně po efektech.

Casper
Člen | 253
+
0
-

Mělo by stačit změnit metodu toggle, v jednom projektu používám toto:

// netteFormsCustomToggle.js
Nette.toggle = function(id, visible) {
    var elem = document.getElementById(id);
    if (elem) {
        if(jQuery){
            visible ? $(elem).slideDown() : $(elem).slideUp();
        } else {
            elem.style.display = visible ? '' : 'none';
        }
    }
};

Úprava na změnu classy by neměl být problém.

ic
Člen | 430
+
0
-

Díky, něco takového asi nakonec budu muset udělat. Připadá mi to povědomě, možná už jsem se přesně na tohle už někdy ptal :)

Čekal bych ale něco takového jako součást frameworku, škoda no. Ale myslím, že něco takového budu potřeba stále častěji a častěji.