Ivory: JQuery dynamische Buttons funktionieren nicht

Beitrag lesen

Hallo zusammen

Leider habe ich mit Jquery nicht allzuviele Erfahrungen und bin auf ein Problem gestossen das mir nicht in den Kopf gehen will.

Was funktioniert?

  
<button value="7" id="Kaufen1">Kaufen</button>  

Erstellt man direkt in die HTML Datei die Button kann dieser auch wunderbar angesteuert werden via:

  
//Beim Klick auf ID Kaufen1 löse diese Funktion aus  
$('#Kaufen1').click(function(){  
                   alert($(this).id);  
                   alert("Ein Test"+$(this).val());  
                   socket.emit('AHKauf', $(this).val(), function(){  
                   $('#nickWrap').hide();  
                   $('#contentWrap').show();  
                   });  
               });  

Was funktioniert nicht?

Erstellt man jetzt dynamische Buttons, also von JS generiert bsp:

  
if(result[a].MetallWunschMenge === null){  
                MetallWunschMenge[a] = "";  
            }else{  
                MetallWunschMenge[a] = "Sucht: "+result[a].MetallWunschMenge+" Metall &lt;button id=&quot;Kaufen"+a+"&quot; value=&quot;"+result[a].ID+"&quot;&gt;Kaufen&lt;/button&gt;";  
            }  
            Struktur[a] = Player[a]+HolzMenge[a]+HolzWunschMenge[a]+SteinMenge[a]+SteinWunschMenge[a]+MetallMenge[a]+MetallWunschMenge[a]+"</br>";  
        }  

Das ganze befindet sich in einer for Schleife. Das Ergebnis der ganzen funktion ist dann:
s bietet: 500 Holz Sucht: 5000 Stein &lt;button id=&quot;Kaufen0&quot; value=&quot;42&quot;&gt;Kaufen&lt;/button&gt;</br>
etc...

Die Funktion erstellt ein Mehrdimensionen Array! [Array[Array]]

Kommen wir zum wesentlichen Teil:

data = s bietet: 500 Holz Sucht: 5000 Stein &lt;button id=&quot;Kaufen0&quot; value=&quot;42&quot;&gt;Kaufen&lt;/button&gt;</br>

players = Anzahl Einträge in der Datenbank

In dieser Funkion wird das Array durchsucht und alle Asci-Zeichen werden mit dem gewünschten Zeichen ersetzt. Danach sieht das so aus:
s bietet: 500 Holz Sucht: 5000 Stein <button id="Kaufen0" value="42">Kaufen</button></br>

Danach wird das Array ins HTML geladen:
$AuktionenAnzeige = $('#AuktionenAnzeige'); // ID von dem AnzeigeFenster, wird weiter oben deklariert

$AuktionenAnzeige.html(AuktionsAusgaben);

  
 socket.on('AuktionsLagerUpdater', function(data, players){  
  
  
                   htmlspecialchars(data);  
  
                    function htmlspecialchars(data) {  
                    AuktionsAusgaben = [];  
                    var a = data;  
                    //Durchsuche das Multi Array und schreibe replaces good job!  
                    if($.isArray(a)) {  
                    //alert("a is an array!");  
                    for(b=0; b < players; b++){  
                        var NewString = a[b];  
                        console.log(NewString);  
                        if (typeof(NewString) == "string") {  
                        data = NewString.replace(/&amp;/g, "&");  
                        data = data.replace(/&quot;/g, '"');  
                        data = data.replace(/&#039;/g, "'");  
                        data = data.replace(/&lt;/g, "<");  
                        data = data.replace(/&gt;/g, ">");  
                        console.log("Erstes Array nach bearbeitung: "+data);  
                        AuktionsAusgaben[b] = data;  
  
                        //return data;  
                        }  
                    }  
                }  
  
                }  
  
                    //console.log(AuktionsAusgaben);  
                   //document.getElementById("AktionsHausKauf").innerHTML = AuktionsAusgaben; JS  
                   //$AuktionenAnzeige.html(AuktionsAusgaben); //JQUERY  
  
                        $AuktionenAnzeige.html(AuktionsAusgaben);  
	            //$AuktionenAnzeige.html(AuktionsAusgaben);  
  
                    $('#nickWrap').hide();  
                    $('#contentWrap').show();  
                    //$AuktionenAnzeige.text(data);  
                   //$AuktionenAnzeige.html(data);  
                });  

Die Buttons werden zwar im HTML angezeigt aber wen man drauf klickt passiert nichts...
Im code ist die click Funktion definiert:

  
$('#Kaufen1').click(function(){  
                   alert($(this).id);  
                   alert("Ein Test"+$(this).val());  
                   socket.emit('AHKauf', $(this).val(), function(){  
                   $('#nickWrap').hide();  
                   $('#contentWrap').show();  
                   });  
               });  
  
$('#Kaufen0').click(function(){  
                   alert($(this).id);  
                   alert("Ein Test"+$(this).val());  
                   socket.emit('AHKauf', $(this).val(), function(){  
                   $('#nickWrap').hide();  
                   $('#contentWrap').show();  
                   });  
               });  

Was mache ich falsch, hat jemmand eine Idee?
Was meine Idee war das möglicherweise die Buttons nicht im DOM existieren was aber auch wieder komisch ist da diese ja angezeigt werden.

Falls Ihr dies Testen wollt, könnt Ihr unter der URL: http://80.219.158.147:1339/ einfach ma die Buttons bei Auktionsliste testen. (Das wären die generierten)
Nicht Dynamische Buttons funktionieren wie erwähnt einwandfrei...

Vielen Dank für eure Hilfe!

Gruss Ivory