Dietrich: Wie kommunizieren touch-Events untereinander?

Moin, Dietrich hier nochmal!

Bin ja mal etwas verwirrt was die Touch-/ bzw. PointerEvents betrifft. Siehe auch hier.

Habe mal mehrere Elemente, die ich über andere Elemente (nennen wir sie mal "Empfängerelemente") ziehen kann.

Mit anderen Worten: das touchend Event muss vom touchmove Event mitgeteilt bekommen, welches Empfängerelement angesteuert wurde. Kann das Empfängerelement in keiner globalen Variable [außerhalb des Scopes der von touchmove aufgerufenen Funktion] speichern, da im Gegensatz zu Klick-Benutzerszenarien bei Touch Events mehrere Elemente gleichzeitig aktiv sein können.

let functionTouchMove = (e) => {
	e.preventDefault();
	e.target.style.top = e.touches[0].clientY + "px";
	e.target.style.left = e.touches[0].clientX + "px";
	if (/* Script: Test, ob Element über einem Empfängerelement*/) {
		let Empfaengerelement = Empfaengerelement;
	}
};

let functionTouchEnd = (e) => {
	e.preventDefault();
	Empfaengerelement // Uncaught ReferenceError: Empfaengerelement is not defined

	// Ja und nu?
};

Besten Gruß aus dem nach wie vor sonnigen Norden!

Dietrich

  1. Hallo Dietrich,

    so richtig habe ich dein Problem nicht verstanden, aber vielleicht hilft dir dieses Tutorial.

    Gruß
    Jürgen

    1. Ja ne, ist klar

      aber wie kann ich der von touchend aufgerufenen Funktion verklickern, welches Empfängerelement die von touchmove aufgerufene Funktion jeweils registriert hat?

      1. Hallo,

        Ja ne, ist klar

        offensichtlich nicht.

        aber wie kann ich der von touchend aufgerufenen Funktion verklickern, welches Empfängerelement die von touchmove aufgerufene Funktion jeweils registriert hat?

        indem du das Element, das bewegt wird, speicherst, aber nicht in einer lokalen Variablen im Eventhandler, sondern etwas globaler, also außerhalb des Eventhandlers. Im Tutorial habe ich das ganze Script in den DOMContentLoaded-Eventhandler gelegt, und konnte so globale Variablen vermeiden.

        Aber das, was du da machst, sieht irgendwie nach Drag & Drop aus. Hast du dir auch mal dieses Tutorial, das das Drag and Drop-Api behandelt, angesehen?

        Gruß
        Jürgen