Den Parameter "o" kannst du weglassen, da du im Eventhandler mit this auf das auslösende Element zugreifen kannst.
Diese Variante läuft noch nicht.
dann zeig mal, was du versucht hast.
Also: ich habe eine init Phase.
In dieser muss ich Werte definieren, die ich später manipulieren kann.
Da das js file später der konstanteste teil bleibt, habe ich relativ viel veränderliche CSS Dinge hier dirn.
function init(){
var o;
o = document.getElementById('catalogue');
...
// das war das thema
o = document.getElementById('tb_k');
o.style.backgroundColor = colors.button_bg_active;
o.style.borderColor = colors.button_border_active;
o.onclick = function(){ display(o, 'catalogue') };
// hier versuche ich gerade etwas neues
o = document.getElementById('catlabel');
o.onmousedown = function(){moveobject(o, 'catalogue' ) };
}
// Und nun die Funktion display
// Sie hat jetzt noch überflüssige variablen
function display(starter, target){
// alert (this) ergibt "Object Window"
var s = starter;
var t = document.getElementById(target);
//alert(s + t);
if( t.style.display == "none" ){
t.style.display = "block" ;
s.style.backgroundColor = colors.button_bg_active;
s.style.borderColor = colors.button_border_active;
}
else{
t.style.display = "none";
s.style.backgroundColor = colors.button_bg;
s.style.borderColor = colors.button_border;
}
}
Wenn ich "this" abrufe, erhalte ich das Window Objekt. Ist also nicht brauchbar.
PS: ich weiss es sieht unschön aus, Styles zu manipulieren. Werde wahrscheinlich später die Classe ändern.
mfg Beat