Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem JS popisek

Zdravím
pořebuju vytvořit popisek k jednotlivým položkám menu, tak aby se mi na určeném místě zobrazovala jak miniatura obrázku tak i text.
Protože ale JS téměř neovládám, vytvořil jsem jenom tohle:

var popisek = new Array();
popisek[1]=["obrazek.jpg","Textový popisek, který informuje o první položce"]
popisek[2]=["obrazek.jpg","Textový popisek, který informuje o druhé položce"]
popisek[2]=["obrazek.jpg","Textový popisek, který informuje o třetí položce"]

function vypsat (pic,text){
document.getElementById("obrazek").innerHTML=popisek[pic]
document.getElementById("popis").innerHTML=popisek[text]

A v dokumentu bych to chtěl volat přes onmouseover.

Myslíte, že to takhle nějak půjde? Potřebuju nakopnout. Předem moc díky.

Předmět Autor Datum
Áno, takto by to šlo. Vhodným návrhom stránky môžeš dosiahnuť to, že tie informácie k jednotlivým po… poslední
los 02.09.2008 22:14
los

Áno, takto by to šlo. Vhodným návrhom stránky môžeš dosiahnuť to, že tie informácie k jednotlivým položkám menu budeš mať priamo na stránke a nebudeš ich musieť definovať v JavaScripte - napr. textový popis položky menu môže byť "schovaný" v atribúte title a názov obrázka sa môže dať nejako určiť podľa obsahu položky.

Postupoval by som tak, že na element s menu (zrejme UL element) by som dal obsluhu udalosti mouseover, v ktorej by sa dané informácie zobrazili. Konkrétny skript závisí od konkrétnych požiadaviek - mohol by vyzerať približne takto (píšem z hlavy, iba pre predstavu):

ul.onmouseover = function(e) {
  e = e || window.event;

  for (var li = e.target || e.srcElement; li && li != this; li = li.parentNode)
    if (li.tagName == "LI") {
      document.getElementById("obrazek").src = li.className.replace(/^(?:.*\s)?obrazek(\d+)(?:\s.*)?$/, "obrazek$1.jpg");
      document.getElementById("popis").firstChild.data = li.title;
      break;
    }
}

Zpět do poradny Odpovědět na původní otázku Nahoru