Mam pytanie odtyczace funkcji anonimowych.
Jest sobie taki oto kod :
Kod
//funkcja konstruktora
function zakladki(){
var zakladki = new Array();
this.elementy = zakladki;
function dodaj(text, link, target){
var nowy = new Array();
nowy["text"] = text;
nowy["link"] = link;
nowy["target"] = target;
zakladki[zakladki.length] = nowy;
}
this.dodaj = dodaj;//przypisanie metody do obiektu
function pokaz(warstwa){
function cEl(element , rodzic, tekst, styl){
rodzic.appendChild(element=document.createElement(element));
if (tekst)
element.innerHTML = tekst;
if (styl)
element.className = styl;
return element;
}
function zaz(id){
alert(id);
}
menu = document.createElement('table');
menu.setAttribute("border","0");
menu.setAttribute("rules","cols");
menu.setAttribute("cellpadding","3");
tBody=cEl('tbody',menu);
row = cEl('tr', tBody);
for (var i = 0; i < zakladki.length; i++){
komorka = cEl('td', row);
komorka.setAttribute("class","normal");
kotwica = cEl('a',komorka,zakladki[i].text);
kotwica.setAttribute("href",zakladki[i].link);
kotwica.setAttribute("target",zakladki[i].target);
kotwica.setAttribute("id","menu" + zakladki[i].text);
}
document.getElementById(warstwa).appendChild(menu);
}
this.pokaz = pokaz;
}//koniec konstruktora
function zakladki(){
var zakladki = new Array();
this.elementy = zakladki;
function dodaj(text, link, target){
var nowy = new Array();
nowy["text"] = text;
nowy["link"] = link;
nowy["target"] = target;
zakladki[zakladki.length] = nowy;
}
this.dodaj = dodaj;//przypisanie metody do obiektu
function pokaz(warstwa){
function cEl(element , rodzic, tekst, styl){
rodzic.appendChild(element=document.createElement(element));
if (tekst)
element.innerHTML = tekst;
if (styl)
element.className = styl;
return element;
}
function zaz(id){
alert(id);
}
menu = document.createElement('table');
menu.setAttribute("border","0");
menu.setAttribute("rules","cols");
menu.setAttribute("cellpadding","3");
tBody=cEl('tbody',menu);
row = cEl('tr', tBody);
for (var i = 0; i < zakladki.length; i++){
komorka = cEl('td', row);
komorka.setAttribute("class","normal");
kotwica = cEl('a',komorka,zakladki[i].text);
kotwica.setAttribute("href",zakladki[i].link);
kotwica.setAttribute("target",zakladki[i].target);
kotwica.setAttribute("id","menu" + zakladki[i].text);
}
document.getElementById(warstwa).appendChild(menu);
}
this.pokaz = pokaz;
}//koniec konstruktora
Ma to byc klasa do tworzenia menu w postaci szeregu przyciskow.
Mato dzialac tak ,ze klikajac na jakis kolejny przycisk , przycisk ten staje sie aktywny ( zmienia kolor) a postale sa niekawtywne ( tez zmieniaja kolor na jakis jasny)
No i tu jest problem bo :
Klikajac na link ( czyli wywolujac zdazrenie onclick ) chce wykonac funkcje realizujaca podmiane kolorow.
Wyczytalem gdzies ,ze mozna to zrobic funkcjami anonimowymi.
Jak podpiac taka funkcje anonimowa i jak przekazac jej parametr ( np z globalnej tablicy zakladki )
funkcja ma sie znalezc w miejscu :
kotwica = cEl('a',komorka,zakladki[i].text).onclick = function() { instrukcje };
Moze ktos robil juz cos podobnego ?
Czekam na sugestie.
Pozdrawiam