Poniżej przedstawione są dwie metody budowania linków, których jedynym celem jest uruchamianie kodu JavaScript. Która z nich jest lepsza, jeśli chodzi o funkcjonalność, szybkość ładowania strony, cele walidacji, itp.
function myJsFunc() {
alert("myJsFunc");
}
<a href="#" onclick="myJsFunc();">Run JavaScript Code</a>
lub
function myJsFunc() {
alert("myJsFunc");
}
<a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a>
'#'
przeniesie użytkownika z powrotem na górę strony, więc zazwyczaj używam void(0)
.
javascript:;
również zachowuje się jak javascript:void(0);
.
Pierwszy z nich, najlepiej z prawdziwym linkiem do naśladowania w przypadku, gdy użytkownik ma wyłączony JavaScript. Upewnij się tylko, że zwrócisz wartość false, aby zapobiec wystąpieniu zdarzenia kliknięcia, jeśli JavaScript zostanie wykonany.
<a href="#" onclick="myJsFunc(); return false;">Link</a>
Jeśli używasz Angular2, ten sposób działa:
<a [routerLink]="" (click)="passTheSalt()">Kliknij mnie</a>
.
Zobacz tutaj https://stackoverflow.com/a/45465728/2803344