Autor Zpráva
joe
Profil
Ahoj,

tak jsem se dostal k dalšímu problému. Rovnou k věci:
HTML
<a href="..." class="trida"><img src="..."></a>

Projdu cyklem všechny odkazy, co maji třídu trida a přiřadím jim nějakou událost na onclick. Jedná se o nějaké mazání, kde potřebuju taky znát id položky v databázi. Tak toto id nastavím odkazu, třeba id="itemId_123".

První věc co jsem nečekal je, že při provádění oné přiřazené funkci se bere, jako že jsem klikl na obrázek, ale je to vcelku logické, nevím co bych pak dělal kdyby byl v odkazu i text a klikl bych na obrázek a nebo na text (?).

Tak tedy musím zjistit rodiče elementu (obrázku), tedy referenci na odkaz se třidou trida, pomocí metody parentNode (funguje vždy?), pak provedu danou funkci a teď jsem se zasekl na tom, jak zastavit provedení toho href, prostě aby se stránka nepřesměrovala a zůstala tam kde je :), protože returnValue a preventDefault se vztahuje k tomu obrázku... Snad jsem to napsal nějak srozumitelně.

Prosím o pomoc, snad můj poslední problém s JavaScriptem.

Díky
fos4
Profil
mas htmlko:
<a href="..." class="trida"><img src="..."></a>

...
<a href="..." class="trida"><img src="..."></a>..



a projedes to javascriptem:

window.onload = function() {
  var items = document.getElementsByTagName('a');

  // projedem odkazy
  for(var i=0;i<items.length;i++) {
    var item = items[i];
    
    // pokud je to trida
    if(item.className.indexOf('trida') > -1) {
      // nastavime fci

      item.onclick = function(e) {
         alert(this); // toto bude html object A hrefu
         // id
         alert(this.id);  // pripadne this.getAttribute('id');
         return false; // vratime false..
      }
    }

  }
}



parentNode funguje vzdy na html objekty.
joe
Profil
fos4
Tak takhle to jde :), ale přidávám události pomocí addEventListener | attachEvent. A tím jsem na to nepřišel, na tohle jsem skoro úplně zapomněl, takže díky, moc mi to pomohlo.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: