Struppi: onclick verhalten und foo has no properties

Beitrag lesen

Was soll eigentlich dieser slice() bei der ID?
das einzelne tr welches die buttons enthält hat die id g12 zum beispiel wobei das 12 die spielID ist. Ich dachte dass ich das mit dem g so machen muss, da ids in XHTML nicht mit einer Zahl anfangen dürfen.

slice ist eine Funktion für ein Array und eigentlich sind Strings keine Arrays.
Ich habe das konkret so aus diesem SELFHTML Beispiel übernommen: http://de.selfhtml.org/javascript/objekte/string.htm#slice

Stimmt, ich habe bisher immer substring() verwendet, aber slice() sieht einfacher aus.

so ganz versteh ich nicht den Sinn, warum du hier eine anonyme Funktion erzeugst und dann unmittelbar aufrufst.
Damit die variable lokal bleibt und nicht überschrieben wird.

Letztlich wäre es hier interessant, was sendInfo und Action ist, wozu du die id brauchst usw.
Ja kann ich schon gut verstehen, deshalb habe ich das Script so weit ich es bisher habe mal hier hochgeladen: http://phpfi.com/93465

Dabei ist dort in Zeile 29 auch wieder so eine unschöne Sache die ich unbedingt vermeiden möchte, denn die funktionalität dieser anonymen Funktion bräuchte ich eigentlich öfter später auch für delGoal() und andere Funktionen, die noch folgen werden. Wenn ich es aber mit einem Konkreten Namen mache dann kann ich es irgendwie nicht so als callback Funktion übergeben, bzw. weiß ich nicht wie ich das machen soll.

Das gleiche Problem.

Ich würde dem Objekt Action als Eigenschaft die ID die du ja schon beim 26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91

function GameClient(url, callback) {

var req = new XMLHttpRequest();

req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if ( req.status < 400 ) {
                callback(1, req.responseText);
            }
            else {
                callback(-1, "Es gab ein Problem beim abrufen der Daten: " + req.status+ "/ " + req.statusText);
            }
        }
    }

req.open("GET", 'http://localhost/Webs/xml/GamesServer.php?function='+url, true);
    req.send(null);

return;
}

function Action(spielID) {

this.id = spielID;

this.addGoal = function (team) {

var getResponse = function(code, response) {
            if(code == 1) {
                this.responseAction(response);
            }
            else this.responseAction.wrong(response);
        }

var send = new GameClient('addGoal&spielID='+ this.spielID

  • '&team='+team, getResponse);
        }
    ....

parent ist überflüssig, da in this.goal() this gleich dem Action objekt ist.

Ansonsten bist du natürlich sehr verstrickt in die "hohe Kunst der JS OOP" Programmierung. Und stehst damit auch zwischen vielen Fallstricken. Welche Funktion letztlich Action in addBehaviour() hat ist nicht ganz klar. Und ich vermute dass du auch noch die Referenz auf den Button brauchst um z.b. den Wert bei dem onclick event zu ermitteln .

Struppi.