Instanzierung von (prototype) Klassen - wann und wo
jan
- javascript
0 Christian S.0 jan
0 molily
0 jan
Hallo zusammen,
ich habe eine eher grundlegende / anfänger frage die mir bei der einarbeitung in ajax / prototype framework kommt..
und zwar schreibe ich meine funktionen/klassen wie folgt:
divScroller = Class.create(
{
initialize: function()
{
Event.observe($('ScrollLeft'), 'click', this.moveLeft.bind(this), false);
Event.observe($('ScrollRight'), 'click', this.moveRight.bind(this), false);
},
moveLeft: function()
{
alert('links');
},
moveRight: function()
{
alert('rechts');
}
});
nur wie instanziere ich dieses nun und an welcher stelle im dokument ??
am ende vom body, am ende der Javascript-Datei ?
wäre
var divScroller = new divScroller();
für die instanzierung am besten oder geht es anders ?
oder wie ist es am elegantesten bzw. korrekt, auch in bezug auf browserkompatibilität?
viele grüße
jan
Hi,
nur wie instanziere ich dieses nun und an welcher stelle im dokument ??
am ende vom body, am ende der Javascript-Datei ?
Generell am Ende vom body, da du sicher gehen musst dass die Elemente $('ScrollLeft') und $('ScrollRight') schon existieren.
Allerdings weiß ich nicht, wie das Class.create() tickt. Evtl. wird initiliaze auch erst aufgerufen, wenn das Dokument geladen ist (anzunehmen). dann wäre es egal.
wäre
var divScroller = new divScroller();
für die instanzierung am besten oder geht es anders ?
Du solltest nicht den selben Namen für die Instanz verwenden, wie für die Klasse, sonst kannst du ja nur eine Instanz erzeugen.
Klassennamen schreibt man eigentlich immer groß am Anfang.
Gruß!
hi,
danke für die antwort..
eine instanz reicht auch - zumindest in dem fall
also sollte ich überprüfen ob das dokument geladen ist, und dann erst instanzieren ?
das heisst ich müsste am beispiel der divScroller.js, die im Head eingebunden wird, die instanzierung (var xy = new divScroller();)
ans ende schreiben ?
gruß
Hi,
nur wie instanziere ich dieses nun und an welcher stelle im dokument ??
am ende vom body, am ende der Javascript-Datei ?Generell am Ende vom body, da du sicher gehen musst dass die Elemente $('ScrollLeft') und $('ScrollRight') schon existieren.
Allerdings weiß ich nicht, wie das Class.create() tickt. Evtl. wird initiliaze auch erst aufgerufen, wenn das Dokument geladen ist (anzunehmen). dann wäre es egal.
wäre
var divScroller = new divScroller();
für die instanzierung am besten oder geht es anders ?
Du solltest nicht den selben Namen für die Instanz verwenden, wie für die Klasse, sonst kannst du ja nur eine Instanz erzeugen.
Klassennamen schreibt man eigentlich immer groß am Anfang.
Gruß!
Hallo,
Event.observe($('ScrollLeft'), 'click', this.moveLeft.bind(this), false);
Das schreibt man neuerdings
$('ScrollLeft').observe("click", this.moveLeft.bind(this))
nur wie instanziere ich dieses nun und an welcher stelle im dokument ??
Wenn dom:loaded eintritt:
http://www.prototypejs.org/api/document/observe
Mathias
vielen Dank.
Und Instanzieren bleibt ganz normal bei var XYZ = new divScroller();
oder gibt es da auch besonderheiten / unterschiede worauf ich achten muss ?
gruß
Hallo,
Event.observe($('ScrollLeft'), 'click', this.moveLeft.bind(this), false);
Das schreibt man neuerdings
$('ScrollLeft').observe("click", this.moveLeft.bind(this))nur wie instanziere ich dieses nun und an welcher stelle im dokument ??
Wenn dom:loaded eintritt:
http://www.prototypejs.org/api/document/observeMathias