Následují dva způsoby vytvoření odkazu, jehož jediným účelem je spuštění kódu JavaScriptu. Který z nich je lepší z hlediska funkčnosti, rychlosti načítání stránky, validace atd.?
function myJsFunc() {
alert("myJsFunc");
}
<a href="#" onclick="myJsFunc();">Run JavaScript Code</a>
nebo
function myJsFunc() {
alert("myJsFunc");
}
<a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a>
'#'
vrátí uživatele zpět na začátek stránky, takže obvykle používám void(0)
.
javascript:;
se také chová jako javascript:void(0);
První z nich, ideálně se skutečným odkazem pro případ, že má uživatel vypnutý JavaScript. Jen se ujistěte, že vrací false, aby nedošlo k vyvolání události kliknutí, pokud se JavaScript spustí.
<a href="#" onclick="myJsFunc(); return false;">Link</a>
Pokud používáte Angular2, funguje tento způsob:
<a [routerLink]="" (click)="passTheSalt()">Click me</a>
.