Tach!
Wenn ich in die Inputs reingehe, erscheint ein Div und ein paar Flaggen zur Sprachenauswahl. Nun möchte ich, dass, wenn der Focus von dem Input runtergeht, dass dieses per Ajaxrequest abgesendet wird. Dies soll aber nicht geschehen, wenn die Flaggen gedrückt wurden.
Verliert das Input den Fokus nicht schon, sobald eine Flagge geklickt wird? Im Input können sie ja nicht sein, denn Input hat keinen Inhalt.
Wie kann ich das richtig anordnen, da sich die einzelnen Bedingungen immer wieder gegenseitig aufheben
Entwirren des Codes wäre gut. Die Eventhandler sollten nicht innerhalb eins anderen Eventhandlers zugewiesen werden, sondern generell den Elemente, spätestens direkt nach ihrer Erzeugung. Weiterhin kannst du, wenn du den Zustand nicht direkt aus den Elementen selbst oder deren Umgebung holen kannst, ihn über jQuerys data() im Element oder einem passenden in dessen Umgebung zuweisen. Daraufhin gilt wieder Paragraf 1, dass du den Zustand aus den Elementen ... lesen kannst.
Ein Zustand wäre, dass irgendeine Flagge geklickt wurde (Momentmal, Flaggen für Sprachen? Das passt hinten und vorn nicht zusammen. Da gibt es jede Menge Überschneidungen in beide Richtungen, die das System uneindeutig machen.) Jedenfalls muss das Klicken der Flagge den Zustand setzen, so dass beim Verlieren des Fokus (also falls das nicht sowieso schon kein zielführender Weg ist) dieser abgefragt werden kann, um daraufhin ent- oder -weder zu ajaxen.
ich habe dies über eine Variable versucht, diese wird aber innerhalb der click-Function gesetzt und ist außen nicht verfügbar. Also, wie kann ich das lösen?
Wenn die Variable im falschen Scope liegt, ist sie unbrauchbar, wie du gesehen hast. Wenn du den Zustand nicht irgendwo anders permanent erhalten kannst, dann häng die Information mit data() an ein Element.
dedlfix.