Funkce JavaScript v href vs. onclick

Chci spustit jednoduchou funkci JavaScriptu na kliknutí bez jakéhokoli přesměrování.

Je nějaký rozdíl nebo výhoda mezi umístěním volání JavaScriptu do atributu href (jako je tento:

<a href="javascript:my_function();window.print();">....</a>

) oproti umístění do atributu onclick (vazba na událost onclick)?

Řešení

Umístění funkce onclick do href by urazilo ty, kteří pevně věří v oddělení obsahu od chování/akce. Argumentují tím, že váš html obsah by měl zůstat zaměřen výhradně na obsah, nikoli na prezentaci nebo chování.

Typickou cestou v dnešní době je použití javascriptové knihovny (např. jquery) a vytvoření obsluhy události pomocí této knihovny. Vypadalo by to nějak takto:

$('a').click( function(e) {e.preventDefault(); /*your_code_here;*/ return false; } );
Komentáře (6)

Kromě toho všeho se href zobrazuje na stavovém řádku prohlížeče a při kliknutí ne. Myslím'e není uživatelsky přívětivé zobrazovat tam javascriptový kód.

Komentáře (0)

Osobně považuji za otravné vkládat volání javascriptu do značky HREF. Obvykle nevěnuji pozornost tomu, zda je něco javascriptový odkaz, nebo ne, a často chci věci otevírat v novém okně. Když to zkusím udělat s jedním z těchto typů odkazů, zobrazí se mi prázdná stránka, na které nic není, a javascript v liště umístění. Tomuto problému se však dá trochu vyhnout použitím tlačítka onlick.

Komentáře (0)