pl: In einer Funktion auf eine Benutzeraktion warten

Ja,

sicher gibts da fertische Scripte für modale Dialoge. Also nicht als popup. Aber ich verstehs einfach nicht: Wie bringe ich einer Funktion xfirm("Wirklich Löschen?") bei daß sie solange wartet bis ein User auf Ja oder Nein geklickt hat?

Bitte mal um Hinweise.

  1. Hey,

    sicher gibts da fertische Scripte für modale Dialoge. Also nicht als popup. Aber ich verstehs einfach nicht: Wie bringe ich einer Funktion xfirm("Wirklich Löschen?") bei daß sie solange wartet bis ein User auf Ja oder Nein geklickt hat?

    Wieso einer Funktion sagen, dass sie warten soll bis etwas eintritt und nicht darauf warten bis etwas eintritt und dann sagen, Funktion mach dein Ding?

    Gruß
    Jo

    1. Hey,

      sicher gibts da fertische Scripte für modale Dialoge. Also nicht als popup. Aber ich verstehs einfach nicht: Wie bringe ich einer Funktion xfirm("Wirklich Löschen?") bei daß sie solange wartet bis ein User auf Ja oder Nein geklickt hat?

      Wieso einer Funktion sagen, dass sie warten soll bis etwas eintritt und nicht darauf warten bis etwas eintritt und dann sagen, Funktion mach dein Ding?

      Vielleicht ist das ja mein Denkfehler. Aber der Aufruf soll schon so aussehen:

      xfirm("Wirklich Löschen?")
      

      Annalog confirm(). Wobei die Funktion entweder true // false zurückliefert.

      MfG

      1. Hey,

        sicher gibts da fertische Scripte für modale Dialoge. Also nicht als popup. Aber ich verstehs einfach nicht: Wie bringe ich einer Funktion xfirm("Wirklich Löschen?") bei daß sie solange wartet bis ein User auf Ja oder Nein geklickt hat?

        Wieso einer Funktion sagen, dass sie warten soll bis etwas eintritt und nicht darauf warten bis etwas eintritt und dann sagen, Funktion mach dein Ding?

        Vielleicht ist das ja mein Denkfehler. Aber der Aufruf soll schon so aussehen:

        xfirm("Wirklich Löschen?")
        

        Gut, also was man sicher machen könnte ist, in einer Funktion, einen neuen Eventlistener setzen und den bei eintreten in der aufgerufenen Funktion wieder löschen.

        document.addEventListener('irgendwas1', fkt, false);
        
        function fkt(e) {
        	//machwas
        	e.target.addEventListener('irgendwas2', fkt2, false);
        }
        
        function fkt2(e){
        	//machwas
        	e.target.removeEventListener('irgendwas2', fkt2, false);
        }
        

        Oder so?

        Gruß
        Jo

  2. Tach!

    Wie bringe ich einer Funktion xfirm("Wirklich Löschen?") bei daß sie solange wartet bis ein User auf Ja oder Nein geklickt hat?

    Das geht nicht, außer es handelt sich um confirm(). Javascript läuft single-threaded. Das heißt, wenn es würde warten sollen, liefe nichts weiter, also auch kein Event-Handling. Deswegen gibt es nichts dergleichen in Javascript, außer dem erwähntem confirm(). Das hält das Script an, wartet außerhalb im Browser auf Bestätigung und setzt es dann fort. Warten in einem eigenen Dialog geht nur zweigeteilt. Der erste Teil erzeugt die Eingabeelemente und weist die Eventhandler zu. Der zweite Teil, die Auswertung, läuft dann los, wenn die Events eintreten.

    Man kann das ähnlich wie eine Funktion aussehen lassen, wenn man ein Promise nimmt. Wir hatten gestern erst das Thema hier im Forum und das Prinzip kannst du dir dort ansehen.

    dedlfix.

  3. Hallo,

    ich habe über das Problem auch schon einige Zeit nachgedacht und auch den von dedlfix verlinkten Thread verfolgt. Ich bleibe (erst mal) bei confirm. Wenn die Unterstützung für dialog ausreichend ist, werde ich mir das Thema wieder vornehmen.

    Gruß
    Jürgen

    1. Hallo,

      ich habe über das Problem auch schon einige Zeit nachgedacht und auch den von dedlfix verlinkten Thread verfolgt. Ich bleibe (erst mal) bei confirm. Wenn die Unterstützung für dialog ausreichend ist, werde ich mir das Thema wieder vornehmen.

      Sehe ich mittlerweile auch so. Danke Euch allen!

      Schönen Sonntag, MfG