| | | | |
| |||||||
| JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator¹ Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Das lässt sich anhand eines solchen, eher sinnfreien Beispiels schlecht sagen. Zuerst mal gilt, im Sinne der Trennung von Darstellung und Logik, dass du wann immer es sich vermeiden lässt keine Styles direkt setzen solltest. Du vergibst eine ID und Klassen - und diese werden im Stylesheet benutzt, um das/die Element(e) zu selektieren und darüber zu formatieren. Und zum anderen halte ich es für wenig sinnvoll, an der Stelle auf Teufel komm raus OO „durchdrücken“ zu wollen. Schau die die großen JS-Frameworks an: Die arbeiten im wesentlichen alle mit einer Selektor-Engine, die das Auswählen von Elementen im DOM nach beliebig einfachen bis komplizierten „Mustern“ ermöglichen – um sie dann anschließend an Funktionen/Methoden übergeben, die irgendwas damit anstellen. So lange es browserübergreifend noch keine simple Möglichkeit gibt, HTML-Elementobjekte prototypisch zu erweitern, würde ich also diesen Weg bevorzugen. Was anderes ist es, wenn du kompliziertere Objekte für deine Programmlogik brauchst, die weit mehr verkörpern, als „nur“ ein HTML-Element. Wenn die lediglich ein HTML-Element „brauchen“, um sich selbst im Rahmen einer Webseite irgendwie „darstellen“ zu können – dann könnte man den zweiten Weg gehen, this.obj = htmlObject (Allerdings ohne solche Nonsense-Methoden wie “makeRed” …) Wobei dann die Frage wäre, wie viel Flexibilität man an der Stelle braucht; ob man das Element als Parameter von außen übergibt oder im Objekt selber erzeugt. Und des weiteren auch noch, ob es überhaupt wirklich da „rein“ gehört – oder ob man die Darstellung nicht auch lieber gleich ganz von den Programmlogik-Objekten abkoppelt. Damit wird man dann letztendlich eher bei einer Art MVC in JavaScript landen. Fertige Ansätze dazu gibt’s sicher schon einige – einfach mal googlen.
__________________ RGB is totally confusing - I mean, at least #C0FFEE should be brown, right? |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 15.10.2010
Beiträge: 131
PHP-Kenntnisse: Anfänger ![]() | Danke, da ist jetzt sehr viel enthalten, das mir weiterhilft. Zu den Beispielen: Es ist schwierig simple, aussagekräftige Codebeispiele zu schreiben, vor allem wenn man auf einem Gebiet noch nicht sicher ist. In diesem Fall hätte ich konkreter sein können, Verzeihung. Ich arbeite mit jQuery, von dessen Funktionen ich großteils jene benutze, die sich auf die View Ebene beschränken (Modifizieren des DOMs, Animationen, Effekte). Es war für mich naheliegend, dass meine Klassen HTML-Objekte repräsentieren. Vielleicht fahre ich auch besser, wenn ich weiterhin linearen Code mit jQuery produziere, wie gesagt, ich habe gerade erst mit Oo in JS begonnen und mir fehlt der Überblick. |
| | |
| | |
| Moderator¹ Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Finde ich wie gesagt nicht so besonders naheliegend. Nimm an, du hast ein Objekt, das irgendeine Liste von Dingen verwaltet. Klar, dieses Objekt selber könnte jetzt ein UL-/OL-Element sein, bzw. eng mit einem solchen verknüpft sein. Die einzelnen Elemente in deiner Liste müssten dann aber jeweils ein LI sein, und ggf. endet es damit noch nicht mal, weil du auch innerhalb der LI noch diverse Elemente brauchst, um das ganze in HTML strukturiert darzustellen. Will man da wirklich für „jeden Furz“ ein HTML-Elementobjekt mit rumschleppen? Ich denke nicht. Das ganze an einen View-Mechanismus zu koppeln, der bei Bedarf eine HTML-Ansicht aus den reinen Daten erzeugt, erscheint mir doch sinnvoller.
__________________ RGB is totally confusing - I mean, at least #C0FFEE should be brown, right? |
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 15.10.2010
Beiträge: 131
PHP-Kenntnisse: Anfänger ![]() | Zitat:
Nur sind mir bislang ausschließlich Fälle untergekommen, wo ich den direkten Zugriff auf ein HTML-Objekt benötigt habe, eben um Effekte und Events zu steuern. Alles andere hole ich mir per Ajax Request vom Server. Hier ist ein Style für Formulare, an dem ich gerade arbeite. Ich denke, eine Klasse 'FormElement', mit Methoden wie showInput(), hideDesc() und focusInput() als Alternative zu dem derzeitigen prozeduralen Code wäre viel einfacher zu handhaben. Und ein Objekt der Klasse FormElement repräsentiert in meinen Augen ein bestimmtes HTML-Elementobjekt. Ich bilde nicht jedes Stück HTML als JS Objekt ab, nur solche, die ich eben irgendwie kontrollieren will. Vielleicht verstehe ich dich auch nicht richtig. | |
| | |
| | ||||
| Moderator¹ Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
![]() Was soll der Sinn dahinter sein, so ein Versteckspiel zu betreiben? Zitat:
Zitat:
Das Anzeigen des jeweiligen Inputfeldes wird ja vom Label aus getriggert – das wären also schon zwei HTML-Elemente, die an der Aktion beteiligt sind.
__________________ RGB is totally confusing - I mean, at least #C0FFEE should be brown, right? | |||
| | |
| | |||
| Erfahrener Benutzer Registriert seit: 15.10.2010
Beiträge: 131
PHP-Kenntnisse: Anfänger ![]() | Zitat:
Danke für den Input! Zitat:
Es reicht in diesem Fall wahrscheinlich eine einzige Klasse FormElement um das Verhalten all dieser Abschnitte zu steuern. Danke für dein Engagement! | ||
| | |
| | ||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Grundlegend finde ich Deinen Ansatz in Ordnung. Hier ein paar Anmerkungen 1) „makeRed“ macht eine AUssage über Wirkung, nicht Funktion. markInvalid() o.ä. wäre treffender. Ob nämlich letztlich dadurch die Box rot wird, mit einem Ausrufezeichen versehen oder fett umrandet, ist eigentlich erst Aufgabe des Stylesheets. Damit kämen wir zu 2) 2) Das Verhalten fest einzubauen halte ich für falsch. Die m.E. eleganteste Methode ist immer noch, class-Attribut zuweisen, (z.B. „invalid“) und mit CSS weiterstylen. Zugegeben, wenn zusätzliches HTML benötigt wird, ist das nur begrenzt möglich. Aber dann würde ich überlegen, diese Struktur gleich auszuliefern und bei Nicht-Bedarf auszublenden. Zitat:
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- | |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Namensschema für Methoden einer Klasse ("Best Practise") | dreamcatcher | Software-Design | 11 | 14.06.2011 14:43 |
| Wohin mit methoden | BlackScorp | Software-Design | 9 | 24.03.2011 16:37 |
| [Erledigt] IF Bildvariable einer Tabelle zuweisen | headbannger83 | Scriptbörse | 8 | 06.01.2011 14:32 |
| [Erledigt] Objekt mit statischen Methoden | hts | JavaScript, Ajax und mehr | 3 | 18.12.2010 21:07 |
| [Erledigt] Letzer Datensatz - andere CSS Klasse zuweisen | greenslot | PHP Tipps 2010 | 7 | 10.08.2010 12:06 |
| Objekte verwenden gleiche Methoden | Cube | PHP Tipps 2010 | 2 | 21.04.2010 09:25 |
| [Erledigt] value in radiobutton variable zuweisen | FreddyS | PHP Tipps 2009 | 7 | 01.09.2009 23:22 |
| [Erledigt] Selectfeld in Php einer Klasse zuweisen | Mitch26 | PHP Tipps 2009 | 2 | 01.04.2009 12:24 |
| Kindklasse: Methoden über _call() ergänzen? | ciss | PHP Tipps 2008 | 2 | 29.12.2008 18:08 |
| [Erledigt] Methoden auf Objekt aufrufen (und fangen), die nicht existieren | tsisson | PHP Tipps 2008 | 2 | 07.10.2008 18:19 |
| UML - Abstrakte und vererbte Methoden zwingend anzugeben? | MaMo-Net | Off-Topic Diskussionen | 3 | 17.03.2008 06:04 |
| Zugriff auf statische methoden oder konstanten | nightfreak | PHP-Fortgeschrittene | 6 | 14.11.2005 16:56 |
| klassen und methoden anderer klassen in methoden.... | PHP Tipps 2005 | 17 | 25.05.2005 09:46 | |
| Variablen Namen zuweisen | dh1sbg | PHP Tipps 2004-2 | 3 | 12.11.2004 17:12 |
| if abfragen eine Variable zuweisen | PHP Tipps 2004 | 6 | 10.07.2004 17:35 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| mit php element klasse zuweisen, php zuweisung methoden, javascript dom element style zuweisen, php elemente einem objekt zuweisen, domelement von php an js übergeben, php methoden instanzieren, javascript ajax variablen zuweisung, php methoden zuweisen |