JavaScript Funktion, die nach ::after ausgeführt wird

  • Moin zusammen,


    ich bin eigentlich schon ziemlich weit gekommen mit JS. Allerdings bin ich jetzt am Ende mit meinem Latein.

    Ich habe eine JS Funktion geschrieben, die auf der Seite Input-Felder aus- bzw. einblendet, je nach Wert eines Checkbox-Wertes.

    Nun hat sich in meinem Shopsystem durch hinzufügen eines Plugins der Bereich mit den Feldern und der Checkbox verschoben.


    Er wird nun erst nach Klick auf ein Radio Button eingeblendet. Dies wurde mit CSS ::after (Pseudo Element) implementiert.

    Somit stehen die Felder im DOM nicht zur Verfügung und meine Funktion im jQuery(document).ready(function( $ ) funktioniert nicht mehr.



    Wie kann ich die Funktion aufrufen, wenn im DOM nach Klick auf den Radio Button die Felder eingeblendet sind.

    Das click-Event auf dem Radio Button ist zu früh, auch hier stehen die Felder noch nicht zur Verfügung.

    Ich hoffe, dass ich mich einigermaßen verständlich ausgedrückt habe und jemand eine Idee für mich hat.



    LG

    Micha

  • Kann mir mal einer den sinn von :before und :after erklären?

    Weil in diesen Beispiel,

    http://jsfiddle.net/danield770/9JFpu/4/

    Versteh ich nicht was das before macht.

    Man könnte doch einfach ein Kreis mit z.index unter den Kasten legen und den halben Kreiss da raus kucken lassen.

    Und was soll das sein

    Code
    1. content: '';

    und diese Angabe verstehe ich gar nicht

    Code
    1. left:0;right:0;

    Währe das nicht gleich mit 100%,oder was sehe ich bei den before und after fallsch.

    Ich finde auch keine vernünftige erklärung im Netz auser das da steht vor und nach einen Element und damit komme ich nicht weiter.


    Währe schön wenn mich einer aufklären könnte.

  • Da kann ich auch nicht helfen, ich habe ::before/::after noch nicht durchdrungen. In meinem Fall habe ich jetzt eine Lösung:

    Da irgendwann mit ::after die Elemente ja doch zur Verfügung stehen, habe ich jetzt einen Timer, der prüft, ob das Element da ist:


    Code
    1. var checkExist = setInterval(function() {
    2. if ($('.tm-epo-field').length) {
    3. clearInterval(checkExist);
    4. personDoppel=document.getElementsByClassName("tm-epo-field");
    5. // My functionality for the element personDoppel
    6. }
    7. }, 10); // check every 10ms


    und dann kann ich meine Funktionen ablaufen lassen. Das ist gewiss sehr unsauber, aber eine andere Möglichkeit habe ich nicht gefunden.