Autor | Zpráva | ||
---|---|---|---|
David1256 Profil |
Dobrý den,
mám tento kód. <a id="my-link">My link</a> <script type="text/javascript"> document.getElementById("my-link").onclick = pozdrav; function pozdrav() { alert("Ahoj"); } </script> Toto normálně funguje a jakmile se klikne na odkaz s id "my-link", provede se funkce pozdrav(), tedy vyskočí okno s textem "Ahoj". Nicméně, já chci tento příklad obohatit o předávání parametru. Funkce pozdrav() by pak měla např. vypsat místo "Ahoj", to co je v parametru funkce pozdrav(). Tedy při pozdrav("Nazdar") by se vypsalo "Nazdar". Vytvořil jsem tedy tento kód. <a id="my-link">My link</a> <script type="text/javascript"> document.getElementById("my-link").onclick = pozdrav("Nazdar"); function pozdrav(text) { alert(text); } </script> Ale to už nefunguje. Funkce se jednou zavolá při načtení stránky (vůbec nechápu proč) a pak už nejde znovu vyvolat, ať klikám na odkaz "My link" sebevíc. Nevíte prosím někdo, proč se to tak chová a jak to zprovoznit, aby to fungovalo tak, jak chci? Děkuji. |
||
juriad Profil |
David1256:
Musíš to uzavřít do další funkce: <a id="my-link">My link</a> <script type="text/javascript"> document.getElementById("my-link").onclick = function() {pozdrav("Nazdar");}; function pozdrav(text) { alert(text); } </script> Trocha teorie: var x = pozdrav // x je funkce var x = pozdrav("Ahoj") // x je výsledek té funkce po zavolání s parametrem "Ahoj" |
||
Str4wberry Profil |
#3 · Zasláno: 9. 6. 2014, 15:25:28
|
||
David1256 Profil |
#4 · Zasláno: 9. 6. 2014, 15:41:21
Díky moc oběma. Přesně to jsem potřeboval, ale vůbec jsem se k tomu nemohl progooglit.
|
||
_es Profil |
#5 · Zasláno: 9. 6. 2014, 15:53:05
David1256:
Viď aj Časté potíže, zajímavosti a poučné debaty » Rozdíl mezi voláním funkce a funkcí. Nejaké parametre si môžeš ukladať aj do samotného elementu: <a id="my-link" data-p1="Nazdar">My link</a> <script> document.getElementById("my-link").onclick = pozdrav; function pozdrav() { alert(this.getAttribute("data-p1")); } </script> |
||
Časová prodleva: 11 let
|
0