Autor Zpráva
maks
Profil
Ahoj,

mám tento HTML kód:
<a href="index.php?...&setactive=8" onclick="nejaka_funkce(); ...tady potřebuji provést akci popsanou dále; return false;"><img src="false.gif" alt="zapnout" title="zapnout">

A potřeboval bych po kliknutí na odkaz zavolat nejakou_funkci (to funguje dobře) a dále pak nahradit tučné části v kódu výše, existují dvě sestavy:
1a) setactive >> setinactive v odkazu
1b) false.gif >> true.gif v obrázku
1c) zapnout >> vypnout v title a altu obrázku

a analogicky k tomu:
1a) setinactive >> setactive v odkazu
1b) true.gif >> false.gif v obrázku
1c) vypnout >> zapnout v title a altu obrázku

Přiznám se, že mě napadlo to nejelementárnější řešení - udělat podmínku a provést 4 replacnutí, ale nevím,jestli to je to nejlepší/nejrychlejší řešení. Vlastně ani nevím, jak tu podmínku napsat, atribut href je dlouhý, jak v něm hledat, jestli obsahuje string „inactive“? indexOf? Jinak?
Chamurappi
Profil
Reaguji na makse:
Což takhle mít v kódu oba odkazy i obrázky a měnit jen jejich viditelnost změnou třídy na společném rodiči?
Str4wberry
Profil
Šlo by změnit URL akce jako přepínač (takže bude pro oba stavy stejná), obrázek udělat přes CSS pozadí a měnit třídu přímo toho odkazu. Ale chyběl by potom ten alt/title. Takže by to třeba šlo řešit umístěním obou obrázků do odkazu a přepínání třídy toho odkazu (jako je to třeba tady).

Nebo rovnou mít oba odkazy se společným rodičem, jak píše Chamurappi.
Živá ukázka
joe
Profil
maks:
Řešil bych to tak, že si k odkazu a obrázku dám nějaké další atributy a pak budu jen prohazovat jejich hodnoty. K tomu se například hodí data atributy.

<a href="http://example.com?parameter=1" data-href="http://example.com?parameter=2">

obdobně pak i u toho obrázku, kde může být nevýhodou, že se bude obrázek teprve po změně zdroje načítat, pak si ho ale můžeš třeba opět JavaScriptem přednačíst.
maks
Profil
Chamurappi:
nj, jak prosté. Že mě to hned nenapadlo...

Str4wberry:
je to obrázek, který potřebuje alt (ano, nebo image replacementem pod něj dostat text), takže pozadí odpadá.

joe:
předcházející řešení se společným rodičem je asi nejkrásnější (i co se kódu týče), použiju to.

Díky.
joe
Profil
maks:
předcházející řešení se společným rodičem je asi nejkrásnější (i co se kódu týče), použiju to.
Když myslíš, nechci nic zpochybňovat, ale pokud chci mít na stránce jeden odkaz (byť mu pak budu měnit URL), já tam opravdu chci mít jeden, ne dva, ale záleží k čemu to opravdu potřebuješ a zda bys tam celý ten odkaz neměl vytvářet až JavaScriptem :-)

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: