Ben bezig met een object gestructureerde opbouw van een pagina. Er is een moederobject met wat properties en ook een _layer object erin die gekoppeld wordt met de paginastructuur:
dat repaint method is met prototyping toegevoegd en regelt het doorgeven van object properties naar de _layer style properties.
als ik objecten aan elkaar hang worden ook de layers in het DOM aan elkaar gehangen (onderaan in de functie):
dit werkt allemaal. Als ik een paar objecten aanmaak komen ze keurig achter elkaar in de body te zitten.
Alleen als ik van dit object een descendant maak, werkt het niet meer:
het object komt wel netjes in de hele objectstructuur, alleen het _layer object wordt overschreven door de navolgende _layerobjecten. Dit heb ik dus niet als ik het TDynNode object gebruik, wel als ik het TPanel object gebruik, terwijl die in niks verschilt van het moederobject (op die _type na, maar die kan je ook nog weghalen)
vraag is dus hoe dat in 's hemelsnaam kan
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| function TDynNode() { //wat properties var layer = document.createElement('div'); layer.className = 'neptuneDynNode'; var handles = document.createElement('div'); handles.className = 'neptuneDynNodeHandles'; handles.style.display = 'block'; handles.innerHTML = 'layoutverneukende html (divjes)'; layer.appendChild(handles); var content = document.createElement('div'); content.innerHTML = this.name; layer.appendChild(content); this._layer = layer; this._handles = handles; this._content = content; this.repaint(); } |
dat repaint method is met prototyping toegevoegd en regelt het doorgeven van object properties naar de _layer style properties.
als ik objecten aan elkaar hang worden ook de layers in het DOM aan elkaar gehangen (onderaan in de functie):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| TNode.prototype.appendChild = function(obj) { if (!this._firstChild) { obj._parentNode = this; this._firstChild = obj; this._lastChild = obj; this._childNodes[this._childNodes.length] = obj; } else { obj._parentNode = this; obj._previousSibling = this._lastChild; this._lastChild._nextSibling = obj; this._lastChild = obj; this._childNodes[this._childNodes.length] = obj; } if (obj._layer) { var parentLayer = (this._layer)? this._layer: document.body; document.body.appendChild(obj._layer); obj.repaint(); } return(obj) } |
dit werkt allemaal. Als ik een paar objecten aanmaak komen ze keurig achter elkaar in de body te zitten.
Alleen als ik van dit object een descendant maak, werkt het niet meer:
PHP:
1
2
3
4
5
| function TPanel() { this._type = 'panel'; } TPanel.prototype = new TDynNode(); |
het object komt wel netjes in de hele objectstructuur, alleen het _layer object wordt overschreven door de navolgende _layerobjecten. Dit heb ik dus niet als ik het TDynNode object gebruik, wel als ik het TPanel object gebruik, terwijl die in niks verschilt van het moederobject (op die _type na, maar die kan je ook nog weghalen)
vraag is dus hoe dat in 's hemelsnaam kan
[ Voor 16% gewijzigd door Verwijderd op 21-04-2003 19:19 ]