display: flex wird zufällig in display: block mit jquery hide / show und google webfont

8

Ich bekomme unvorhersehbare Ergebnisse, wenn ich jquery css("display") auf einem Element anrufe; manchmal ist es flex , manchmal ist es block . Es ist seltsam, dass dieser Fehler nur dann auftritt, wenn ich jquery show / hide benutze und der Fehler etwa 50% der Zeit auftritt. Noch seltsamer ist, dass ich diese Ergebnisse sehe, bevor hide sogar ausgeführt wird.

Update: Es scheint auch mit diesem Google Webfont CSS verbunden zu sein bin inklusive. Wenn ich die Schriftart entferne, verschwindet das Problem. Das ist alles sehr seltsam.

Hier ist eine Vereinfachung meines Codes:

js:

%Vor%

html:

%Vor%

css:

%Vor%

Das korrekte Verhalten sollte ausgedruckt werden:

%Vor%

Aber was ich in etwa 50% der Zeit sehe ist:

%Vor%

Irgendwelche Ideen zu was könnte das verursachen? Ich möchte wissen, warum .

    
Pubby 02.05.2015, 10:52
quelle

4 Antworten

1

In Ihrer schlechten Ausgabe ist der Anfangswert der Anzeige block . Dies ist kein Fehler mit der show-Methode.

Sind Sie sicher, dass Ihr Skript nach der CSS-Berechnung ausgeführt wird?

Überprüfen Sie Ihre Dokumentstruktur:

%Vor%     
Techniv 02.05.2015, 11:17
quelle
0

BEARBEITEN: Nach Ссылка verbergen Sie den vorherigen Zustand. Aber wie es scheint, funktioniert es in Ihrem Fall nicht. Lösung:

js

%Vor%

css:

%Vor%

So ersetzen Sie die js mit meiner js und fügen Sie .hideFlex zu Ihrem CSS. Sollte dann funktionieren.

    
Fabian Lurz 02.05.2015 11:02
quelle
0

Ihr Code funktioniert in der neuesten Version von jquery

IMO Was auch immer das Problem ist, liegt daran, dass Ihr Code (vielleicht sogar das CSS) diese Anzeige an einem bestimmten Punkt blockiert und Sie merken es nicht.

JS FIDDLE

Versuchen Sie es mit addClass und removeClass. Ausblenden und anzeigen legen Sie den zu blockierenden Wert fest.

%Vor%     
Tech Savant 02.05.2015 11:02
quelle
0

Damit die JQuery-Funktionen hide () und show () ordnungsgemäß funktionieren (den ursprünglichen Anzeigewert beibehalten), sollte das Element zu dem Zeitpunkt, an dem die Funktion aufgerufen wird, Teil des DOM sein. Vielleicht entlädt Google Webfonts Ihren Inhalt vorübergehend von DOM ...

Problem kann so reproduziert werden:

Ссылка

%Vor%     
Andrej 30.03.2016 16:05
quelle

Tags und Links