2016-06-08 5 views
2

Ich verwende eine Flexbox, um zwei benachbarte Elemente auf derselben Linie zu haben. Das linke Element hat etwas Text und das rechte Element hat eine Nummer.Flexbox-Element ausblenden, basierend auf Nachbarelementgröße oder -wert

Wenn das rechte Element einen Wert mit mindestens 7 Ziffern enthält (> 999.999 oder < -999.999), sollte das linke Element mit dem Text ausgeblendet werden, um Platz für den größeren Wert zu schaffen.

Irgendwelche Ideen, wie Sie mit diesem Problem umgehen? Soll ich die Logik basierend auf der Größe des richtigen Elements oder des Wertes erstellen? Ich hoffe, dass ich nicht so etwas wie einen Beobachter brauche.

+1

Ist es möglich, eine Prüffunktion hinzuzufügen, wenn der Inhalt des rechten div aktualisiert wird? –

Antwort

1

können Sie den Hörer "onchange""keyup" verwenden:

document.getElementById("right").addEventListener("keyup", myCheck); 

Arbeiten groß:

jsFiddle here

Es hängt wirklich davon, ob das richtige Element ein Textfeld ist oder nicht, wenn es sich um eine Textbox ist , keyup listener ist der beste, aber wenn es nur ein div ist, funktioniert der onchange-listener.

+0

Das funktioniert gut für ein Textfeld, aber was passiert, wenn das richtige Element (mit der Nummer) nur nicht editierbaren Text und der Wert ist nur festgelegt und wird sich nicht ändern? –

+1

Nun, wenn du weißt, dass es nur einmal sein wird, kannst du 'myCheck' nur einmal aufrufen. Oder fügen Sie den Ereignis-Listener beim Laden der Seite hinzu, bevor er überhaupt einen Wert erhält. In der Geige habe ich bemerkt, dass wenn es ein div und nicht ein Textfeld ist, es mit dem 'onchange'-Ereignis-Listener funktioniert. –

+0

@ M.Slomski Bitte senpai als Antwort markieren? –

Verwandte Themen