|
|||
![]()
hi leute
ich beschäftige mich gerade mit javascript. dazu habe ich mir einige tutorials zu oop in javascript durchgelesen und mir die javascript-library prototype (Prototype JavaScript Framework: Class-style OO, Ajax, and more) runtergeladen. ich versuche damit gerade eine seite zu coden, mit der man die klasse "Mensch" ändern kann und dem "Menschen" eine Aktivitaet zuweisen kann. jede sekunde wird außerdem mithilfe einer klasse überprüft, was der "Mensch" gerade macht. Das ist der Quellcode: test.htm: Code:
<html> <head> <title>OOP-Test</title> <script language="JavaScript" src="lib/prototype.js"></script> <script language="JavaScript" src="oop.js"></script> </head> <body onload="javascript:init();"> <div id="status"> </div> <br><br> <div id="aktivitaet"> </div> <br><br> Neue Aktivität: <input type="text" name="neue_aktivitaet"><button onclick="javascript:meinMensch.SetAktivitaet($F('aktivitaet'));">OK</button> </body> </html> Code:
// Initialisieren function init() { var meinMensch = new Mensch("Tanja", "w"); meinMensch.SetAktivitaet("Latschen") CheckAktivitaet(meinMensch, "aktivitaet"); window.setTimeout("DivInhaltAendern('status', 'Objekt Mensch erzeugt.')", 2000); } // Hilfsfunktionen function DivInhaltAendern(div, neuerInhalt) { $(div).innerHTML = neuerInhalt; } // Klasse "Mensch" function Mensch(name, geschlecht) { // Eigenschaften this.Name; this.Geschlecht; this.Aktivitaet; // Methoden this.SetAktivitaet = function(neueAktivitaet) { this.Aktivitaet = neueAktivitaet; } // Konstruktor this.Name = name; if (geschlecht == "w") this.Geschlecht = "männlich"; else this.Geschlecht = "weiblich"; this.Aktivitaet; } // Loop-Klasse function CheckAktivitaet(mensch, divId) { // Eigenschaften var stop = false; var mal = 1; // Loop-Funktion zum Aktualisieren des Aktivitäts Status this.loop = function(intervall) { DivInhaltAendern(divId, mensch.Aktivitaet); if (stop == false) { window.setTimeout("this.loop(" + intervall + ");", intervall); } else $(divId).innerHTML = "Überprüfung gestoppt."; } // Stoppt das Checken auf Aktivitäten this.Stop = function() { stop = true; } // Konstruktor this.loop(1000); } er soll dabei die funktion aufrufen, die die Aktivität von der Instanz einer "Mensch"-Klasse (var meinMensch) verändert (Über die Methode SetAktivitaet(), dabei wird der Wert des Formulars "aktivitaet" mit prototype übergeben, also meinMensch.SetAktivitaet($F('aktivitaet ')) --> $F('aktivitaet') ist der text, der im formular steht, für alle die prototype nicht kennen). in der javascript-konsole von firefox wird folgendes ausgegeben: Code:
Fehler: meinMensch is not defined Quelldatei: file:///E:/Programmierung/JavaScript/Versuche/OOP/test.htm Zeile: 1 |
Sponsored Links |
|
||||
![]()
Hallo,
Klassen werden in JS (mit prototype) anders definiert, nicht so wie bei dir als funktion. So in etwa könnte das aussehen: Code:
var Mensch = Class.create(); Mensch.prototype = { initialize: function(name, geschlecht) { this.mensch = name; this.geschlecht = geschlecht }, CheckAktivitaet: function() { // code }, SetAktivitaet: function() { // code } }
__________________
PHP und Webdesign Blog |
Sponsored Links |
|
|||
![]()
danke duessu, darauf wäre ich warscheinlich nie gekommen! ich habe schon alles mögliche probiert.
das scheint wirklich ein gutes board zu sein, ich glaube ich halte mich hier länger auf ![]() also der thread wäre dann erledigt. |
![]() |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Impressumsaufruf mit Javascript | Sinclair | Javascript & Ajax | 6 | 19.05.2008 15:41 |
Problem: IE versteckt Text & Feedback | Herbi | CSS | 2 | 11.08.2006 14:39 |
Javascript Problem - onclick return | Spyker | Javascript & Ajax | 4 | 11.07.2006 11:54 |
Problem mit background-image / javascript im IE | danliker | CSS | 3 | 17.05.2005 21:50 |
Problem mit Background-Color im FireFox | to.ni | CSS | 2 | 31.08.2004 11:13 |