Casabalnca: Dynamisches Programmieren

Beitrag lesen

Hallo,

ich habe da zwei Probleme. Ich versuche diese verständlich zu erklären:

Es gib eine Layout-Seite, die fast jede Programmiersprache mittlerweile kennt. 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.

Kurzgefasst, es gib in der partielle Seite ein Textfeld und einen Button und Javascript-Code wie z.B. unten:

<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. Durch den Button geht eine jquery-dialogbox auf,

   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:

  1. 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?

  2. 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. So gibt es mehrere ähnliche Code-Bereiche auf der Seite, die alle dasselbe tun und treten sich gegenseitig auf die Füße. Gibt es einen Weg, um zu überprüfen, ob der besagte Code-Bereich bereits auf der Seite vorhanden ist, um so ein nochmaliges duplizieren zu verhindern.

Ich weiß, dass dies kein sauberer Programmierstil ist. Ich muss aber leider mit dem, was mir momentan zur Verfügung steht, arbeiten.

Gruß