Hi,
Es gib eine Layout-Seite, die fast jede Programmiersprache mittlerweile kennt.
den Satz verstehe ich nicht. Also die einzelnen Wörter schon, aber ich kann keinen Sinn erkennen.
In diese werden dann partielle Seiten zur Laufzeit hinzugefügt. An das Layout komme ich nicht daran. Alles, was ich programmiere ist also in der partiellen Unterseiten.
Das Rahmendokument ist also durch jemand anderen vorgegeben, und du kannst nur ganz bestimmte Bereiche des Inhalts bearbeiten. Ein Redaktionssystem oder sowas?
<div id="myDiv"> <input typ="text" name="myText" id="textId"> <input type="button" name="myButton" id="buttonId" > </div> <div id="myDialog"> ... </div>
Die partielle Seite kann beliebig oft dupliziert und untereinander in das Layout hinzugefügt werden.
Nein, kann sie nicht. Dann hättest du mehrere Elemente mit derselben ID im Dokument. IDs müssen aber dokumentweit eindeutig, also einzigartig sein. Wenn du doch mehrere gleichartige Elemente benennen musst, würde sich stattdessen eine Klasse anbieten. Aber selbst die ist vielleicht gar nicht nötig (siehe weiter unten).
Außerdem hast du da Formularelemente (input, button). <ins> Nein, du hast gar kein button-Element. Warum eigentlich nicht? Das wäre hier prädestiniert. </ins> Es bietet sich also an, sie nicht in ein nichtssagendes div zu verpacken, sondern in ein form-Element - schon der Semantik wegen, auch wenn du das Formular nicht "klassisch" abschicken willst.
dialog = $( "#myDialog" ).dialog({ open: function() { ... } }); $("#buttonId").button().on("click", function(e) { e.preventDefault(); dialog.dialog("open"); });
in der man z.B, einen Text auswählen kann. Nach dem Schließen der dialogbox, wird der ausgewählte Text in der dialogbox im oben genannten Textfeld, myText, eingetragen.
Nun zu meinen Problemen:
- Wie bereits erwähnt, ich habe u.U. mehrere zur Laufzeit dynamisch in das hinzugefügten partiellen Seiten mit allen Textfeldern und Buttons, die alle über dieselben ids und Namen verfügen. Woher kann man nun das richtige Textfeld zum gedrückten Button finden, in den der Text aus der dialogbox hinzugefügt werden soll?
Wenn du ein <form> anstelle des div-Elements nimmst, kannst du dieses komfortabel über die form-Eigenschaft des Buttons ermitteln. Und wenn du das zweite div, das den Dialog bildet, ebenfalls in das Formular steckst, kannst du dieses auch direkt im DOM ermitteln (als Geschwisterelement des Formulars übrigens auch). Ohne Klassen, ohne IDs.
- Die partielle Seite verfügt auch über die Jquery-Bereiche, die ich momentan leider nicht auslagern kann. Jedes mal, wenn die partielle Seite ins Layout hinzugefügt wird, damit das Feld und der Button angezeigt werden, wird auch der Jquery-Code mit dupliziert.
Das hast du doch in der Hand. Dann füge den Javascript-Code nur beim ersten Mal mit ein, und bei folgenden Blöcken nur den HTML-Code.
Live long and pros healthy,
Martin
Klein φ macht auch Mist.