Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
id wird bei übersetzung der Seite nicht ausgegeben
#1
Hallo zusammen,

bräuchte da mal Infos zum Verständnis denn ich habe keine Erklärung für das Phänomen.

Code:
document.getElementById('Entsorgung').addEventListener('click',function(e){Retourendatenabsenden(e.target.id); return false;});




function Retourendatenabsenden(werhatgeclickt){
console.log(werhatgeclickt);
Zeige mal den Teil-Code um den es geht.  Dem Button mit der ID "Entsorgung" wird ein Click Listener zugefügt. Auf der Seite gibt es ein Wort was auf Englisch ist und daher kommt die Abfrage ob die Seite automatisch auf Deutsch übersetzt werden soll.

Wenn ich keine Übersetzung mache, wird mir die ID in der Funktion ausgegeben.
Lasse ich die Seite übersetzen, ist die Ausgabe der ID leer.
Womit hängt das zusammen? Die ID ändert sich für den Button nicht.

Hat jemand eine Erklärung dafür?

Gruß
Zitieren
#2
Das Problem ist mir bisher noch nicht untergekommen...

Ohne das HML zu sehen, das zu dem Code gehört, würde ich mal versuchen das Problem weiter einzugrenzen.

1.  Lass dir mal den Rückgabewert des Aufrufs von 
Code:
document.getElementById('Entsorgung')
ausgeben. Ist das in "beiden" Fällen das gleiche Element?

wenn Ja:
2. Lass dir mal in deinem Eventhandler den Wert von
Code:
e
ausgeben. Wie variiert der Wert bei den Aufrufen?
Zitieren
#3
finde es komisch.

vor der Übersetzung ist target "button#Entsorgung" die ID ist "Entsorgung"

nach der Übersetzung "font" und die ID ist ""

es wird wohl für jedes Element bei Übersetzung ein Font Style erstellt und dann ist die ursprüngliche ID nicht mehr vorhanden im Target
Zitieren
#4
Hast du dir die Werte, die ich oben erwähnt habe mal ausgeben lassen? Was steht denn da drinnen?

Welchen Browser verwendest du?
Ist das Verhalten in anderen Browsern das Gleiche?
Zitieren
#5
ich nutze Chrome und habe keinen anderen Browser verwendet, da nur dieser in Frage kommt.
Ich habe mir e ausgeben lassen und habe das festgestellt was ich oben geschrieben habe. Das target ändert sich
Zitieren
#6
Wie es scheint, erstellt Chrome ein (oder auch mehrere) font Element(e) um den Text herum, der Übersetzt wird.


Was möchtest du denn erreichen?
Bei deinem Beispiel kennst du die ID, dir übertragen werden soll ja schon ('Entsorgung').
Ist es möglich, die ID direkt zu übergeben?


Da das Target ja ein Kindelement von deinem gewünschten Ziel ist, könntest du dir auch mit closest
Code:
e.target.closest('[id]')
das nächste Elternelement mit einer ID holen.
Zitieren
#7
Zitat:Wie es scheint, erstellt Chrome ein (oder auch mehrere) font Element(e) um den Text herum, der Übersetzt wird.
genau so ist es, für jedes, ob es übersetzt werden muss oder nicht.


Stimmt , die ID könnte ich auch direkt mit übergeben anstatt sie erneut auszulesen Big Grin

Aber Deine Lösung ist mal wieder Top!!! mit e.target.closest(`[id]`).id bekomme ich die ID ob übersetzt oder nicht.

DANKE!!!
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste