Javascript gondok Opera alatt
Sziasztok,
egy készülő oldal szolgáltatásait javítgatva éppen most mélyedek el a javascriptben és belefutottam néhány bosszantó dologba.
ezen az oldalon a baloldali linklistára készítettem egy sublink elrejtő-megmutató scriptet, amiben ha a '+' vagy '-' jelre kattintasz megjelennek vagy eltűnnek a linklistához tartozó sublinkek. A gond annyi, hogy IE alatt tökéletes, FF alatt már nem jelenik meg az ikonokhoz tartozó 'alt' szöveg és Operában csak egyszer becsukja linklistát utána semmi. És itt sem jelenik meg az 'alt' szöveg.
A '+' '-' ikonokat csak akkor rakja ki a script ha van sublink.
a kód:Ha valakinek van valami ötlete, nagyon megköszönném,
Laci
■ egy készülő oldal szolgáltatásait javítgatva éppen most mélyedek el a javascriptben és belefutottam néhány bosszantó dologba.
ezen az oldalon a baloldali linklistára készítettem egy sublink elrejtő-megmutató scriptet, amiben ha a '+' vagy '-' jelre kattintasz megjelennek vagy eltűnnek a linklistához tartozó sublinkek. A gond annyi, hogy IE alatt tökéletes, FF alatt már nem jelenik meg az ikonokhoz tartozó 'alt' szöveg és Operában csak egyszer becsukja linklistát utána semmi. És itt sem jelenik meg az 'alt' szöveg.
A '+' '-' ikonokat csak akkor rakja ki a script ha van sublink.
a kód:
function addLinkImages()
{
var elems = ElementsByClassName('li_sublink');
if(elems.length)
{
src = (sublink_statusz == 'minusz')? 'plusz_feher.gif' : 'minusz_feher.gif';
sublink_statusz = (sublink_statusz == 'minusz')? 'plusz' : 'minusz';
var alt_text = (sublink_statusz == 'plusz')? megmutat[nyelv] : elrejt[nyelv];
parent = document.getElementById('links_felso');
if(child = document.getElementById('sublink_statusz'))
{
parent.removeChild(child);
}
var icon = document.createElement('img');
icon.setAttribute('src' , '../images/' + src);
icon.setAttribute('width' , '10');
icon.setAttribute('height' , '15');
icon.setAttribute('alt' , alt_text);
icon.style.verticalAlign = 'bottom';
icon.style.cursor = 'pointer';
icon.style.marginTop = '4px';
icon.style.marginRight = '10px';
icon.id = 'sublink_statusz';
icon.onclick = function hide_sublinks()
{
var display_arg = (sublink_statusz == 'minusz')? 'none' : 'block';
var alt_text = (sublink_statusz == 'plusz')? megmutat[nyelv] : elrejt[nyelv];
var elems = ElementsByClassName('li_sublink');
for(i=0; i<elems.length; i++)
{
azon = elems[i].id;
document.getElementById(azon).style.display = display_arg;
}
addLinkImages();
};
parent.appendChild(icon);
}
}
Laci
alt szöveg
alt
tulajdonság feladata, hogy ha nem töltődik le a kép, a böngésző akkor, és csakis akkor megjelenítse, a kép helyett. Atitle
tulajdonság feladata, hogy tooltipként, vagy egyéb módon megjelenjen a böngészőt használó számára, ha az adott kép felé viszi az egérkurzort. Az Internet Explorer el van tévedve, azért jeleníti meg azalt
tulajdonság értékét tooltipként. Állítsd be atitle
tulajdonságnak is ugyanazt az értéket, és voálá.A
sublink_statusz
változóval nem látom át, hogy mit bűvészkedsz, mi neki a scope-ja? Az egy helyi, vagy egy globális változó? Ha globális, akkor a globális névtérben nem ártana deklarálni.mindig tanul az ember...
A
sublink_statusz
globális, az alapértékeminusz
, mivel alapból az összes sublink ki van írva, tehát aki akarja a '-' jelre kattintva elrejtheti őket.Arra szolgál, hogy mindig a megfelelő ikont rakja ki, sublinkek elrejtve állapot esetén a '+', sublinkek megmutatva állapot esetén a '-'.
IE, FF rendben, de Opera alatt valami miatt nem muzsikál.
Egyébként a Te diszkrét javascript cikkedből indultam ki, és próbálok minden javascriptet 'diszkretizálni' az oldalon.
A cikk nagyon jó és érthető, gratulálok hozzá.
Laci
Nem jó az alap ötlet
Gondolj arra, hogy a felhasználónak mielőtt rákattint bármilyam interface elemre lesz egy előzetes elvárása, hogy mi fog történni. Pl ha felkapcsolod a falon lévő kapcsolót akkor a villany fog felkapcsolódni és nem a TV.
Másrészt ha csak azt a 3-4 almenüpontot kell elrejteni akkor teljesen felesleges ez a ki-becsukósdi.
Másik: a menüben most csak a képek szolgálnak linkként a szövegek nem. Tuti, hogy mindenki először a linkre fog próbálni kattintani, mert az a megszokott. Én nagyon ajánlom, hogy legyen az is link.
A kibontós menü alatti kis képekre én vártam volna, hogy meglehet nézni nagyobbakban őket.
A lézeres és szépség szalon rész menüjének színválasztása nem szerencsés, mert (legalábbis én TFT-men) alig olvasható, kicsi a kontraszt háttér és fehér betű között.
köszi a kritikát
A ki-becsukás azért került a linkdoboz jobb sarkába, mert oda hiányzott valami kis apróság. Egyébként csak a fogászat oldal 'rendelő' linkjének lesznek sublinkjei, kb 8-10 db, ami kicsit megnyújtotta volna a linkdobozt, ezért gondoltam erre a csukogatós módszerre.
A színeken majd még gondolkodom, nem akarom nagyon tarkára csinálni, ámbár a fehér tényleg kicsit elmosódott.
Laci